Как "java.exe" находит файл с нужным классом при запуске?
Известно, что запуск java программ (скомпилированных .class файлов) происходит с помощью вызова:
java ИмяКласса
но как JVM находит файл в котором реализован данный класс? Конечно, если следовать рекомендациям, то класс Main будет в файле Main.class, но эту рекомендацию можно нарушить, сделать класс Main в файле Something.class и все равно java сможет запустить такой проект.
Неужели java просматривает все файлы в области видимости своего окружения, вытаскивая названия всех реализованных классов? Таких же .class файлов могут быть тысячи? Или есть какая то хитрость?
Ответы (1 шт):
К сожалению, вопрос не имеет смысла. Когда я проводил эксперименты, то ошибся и вот это заявление:
но эту рекомендацию можно нарушить, сделать класс Main в файле Something.class
на самом деле ошибочно. То есть, для публичных классов (каковым должен являться стартовый класс) так делать нельзя, класс Main может быть описан только в файле Main.java