Проблемы при запуске Java-программы из интерфейса командной строки

#java

#java

Вопрос:

Я создал Java-программу в Eclipse. Когда я запускаю программу в Eclipse («запустить как -> Java Application»), программа работает нормально, и у меня есть правильный вывод. Однако, когда я пытаюсь запустить программу в интерфейсе командной строки, я получаю эту ошибку:

Исключение в потоке «main» java.lang.NoClassDefFoundError : HelloWorld (неправильное название: helloworld/HelloWorld) Не удалось найти основной класс: HelloWorld. Программа завершит работу.

Файл класса находится в каталоге bin, и я пытаюсь запустить его с помощью команды:

 java HelloWorld
  

Комментарии:

1. Находится ли ваш класс в пакете по умолчанию (т. Е. Нет объявления пакета)? И когда вы говорили I try to compile it with the command: java HelloWorld , вы имели в виду запуск?

2. Да, я имею в виду запуск проекта, а не его компиляцию.

3. В моем классе есть объявление пакета: package helloworld;

Ответ №1:

Поскольку ваш класс находится в пакете helloworld , вы должны запустить его следующим образом:

 java helloworld.HelloWorld
  

Также убедитесь, что «.» находится в вашем classpath.

Комментарии:

1. Это сработало. Мне пришлось ввести ее в каталог перед каталогом helloworld.

Ответ №2:

Я пытаюсь скомпилировать ее с помощью команды: java HelloWorld

ДЛЯ компиляции Java-программы вы должны использовать команду javac, например

 javac Helloworld.java
  

Комментарии:

1. Я имел в виду запустить файл, а не скомпилировать его, поскольку он уже скомпилирован.

2. @Victor: Предоставляете ли вы все необходимые jar-файлы в classpath при ее запуске?

3. У меня нет файла jars, только HelloWorld.class и HelloWorld.java

4. @Vector: если в вашем классе есть объявление пакета, тогда вам следует указать путь к вашему классу до папки, содержащей папку helloworld, а не папку helloworld.

5. И как я должен это сделать?

Ответ №3:

Вы уверены, что каталог, в котором находятся ваши классы, находится в classpath? Как правило, в каталоге вашего проекта, каталоге «classes» или «lib».

Если вы запускаетесь из этого каталога, вы могли бы попробовать добавить «.».

Смотрите параметр -cp исполняемого файла Java runtime.