Как "java.exe" находит файл с нужным классом при запуске?

Известно, что запуск java программ (скомпилированных .class файлов) происходит с помощью вызова:

java ИмяКласса

но как JVM находит файл в котором реализован данный класс? Конечно, если следовать рекомендациям, то класс Main будет в файле Main.class, но эту рекомендацию можно нарушить, сделать класс Main в файле Something.class и все равно java сможет запустить такой проект.

Неужели java просматривает все файлы в области видимости своего окружения, вытаскивая названия всех реализованных классов? Таких же .class файлов могут быть тысячи? Или есть какая то хитрость?


Ответы (1 шт):

Автор решения: Pit

К сожалению, вопрос не имеет смысла. Когда я проводил эксперименты, то ошибся и вот это заявление:

но эту рекомендацию можно нарушить, сделать класс Main в файле Something.class

на самом деле ошибочно. То есть, для публичных классов (каковым должен являться стартовый класс) так делать нельзя, класс Main может быть описан только в файле Main.java

→ Ссылка