Java не удается найти файл

Обновлено: 04.07.2024

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. Заключение

Читайте также: