Java не удается найти файл
1. введение
Дальнейшее чтение:
Объясненный метод Java main()
2. Пример Программы
Мы начнем с Hello World программы:
Теперь давайте скомпилируем его:
Здесь компилятор сгенерирует файл .class для нашей программы. Этот файл .class будет создан в том же каталоге. Файл .class будет иметь то же имя, что и имя класса, заданное в программе Java. Этот файл .class является исполняемым.
3. Неправильное Название Класса
Чтобы запустить файл .class , сгенерированный компилятором Java, мы можем использовать следующую команду:
А теперь давайте запустим нашу программу:
Как обсуждалось ранее, компилятор сгенерирует файл .class с тем же именем, что и класс Java в программе . Таким образом, в нашем случае основной класс будет иметь имя Hello World , а не hello world .
Давайте попробуем еще раз с правильным корпусом:
На этот раз все прошло успешно.
3.1. Расширение файла
Чтобы скомпилировать программу на Java, мы должны указать имя файла с его расширением (. java ):
Но чтобы запустить . class file, нам нужно указать имя класса, а не имя файла. Таким образом, нет необходимости предоставлять расширение .class :
Итак, опять же, давайте запустим нашу программу, используя правильное имя класса:
4. Имена пакетов Java
В Java мы сохраняем подобные классы вместе в том, что мы называем пакетом /.
Давайте переместим класс HelloWorld в пакет com.baeldung :
Теперь давайте скомпилируем и запустим обновленную программу Hello World , как и раньше:
Давайте попробуем понять, что же мы здесь упустили.
Чтобы запустить класс Java, который находится в пакете, мы должны указать его полное имя . Поэтому в нашем случае Hello World полное имя com.baeldung.Адский мир .
Теперь, когда мы создали com.baeldung package, мы фактически создали структуру папок, такую как:
Во-первых, давайте попробуем запустить нашу программу из каталога com/baeldung :
Тем не менее, мы не можем запустить нашу программу.
Здесь, когда мы указали полное имя класса com.baeldung.HelloWorld , Java пытался найти HelloWorld.class файл в com/baeldung , в каталоге, из которого мы запускали программу.
Поскольку мы уже находились внутри com/baeldung , Java не смогла найти и запустить программу HelloWorld .
Теперь давайте вернемся в родительскую папку и запустим ее:
5. Недопустимый путь к классу
Прежде чем продолжить, давайте сначала разберемся, что такое путь к классам – это набор классов, доступных для нашей текущей JVM.
Мы используем переменную classpath, чтобы указать JVM, где найти файлы .class в файловой системе.
Во время выполнения программы мы можем указать путь к классу, используя параметр -classpath . пример:
В приведенном выше разделе мы изменили наш каталог для запуска нашей программы. Но что, если мы захотим запустить его из какой-то другой папки? Вот когда переменная classpath помогает нам.
Чтобы запустить нашу программу из каталога com/baeldung , мы можем просто указать, что наш путь к классу состоит из двух каталогов – по одному для каждой части пакета:
6. Заключение
Читайте также: