#java
#java
Вопрос:
Каждая программа, которую я запускаю на Java, выдает аналогичную ошибку.
Это программа helloworld:
Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong nam
e: helloworldapp)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: helloworld. Program will exit.
Комментарии:
1. Можете ли вы также показать свой код? И объясните, как вы это запускаете?
2. helloworldapp или helloworld или HelloWorld? Обратите внимание, что Java обрабатывает имена классов, чувствительные к верхнему / нижнему. Редактор = Блокнот?
Ответ №1:
Файл класса helloworld.class
содержит класс с именем helloworldapp.class
. Единственная реальная причина этого, о которой я могу думать, заключается в том, что вы вручную переименовали .class
файл.
Это не сработает! Вызываемый класс helloworldapp
должен быть найден в .class
файле с именем helloworldapp.class
.
Если вы хотите изменить имя класса, переименуйте .java
исходный файл, отредактируйте class
определение и перекомпилируйте его.
Ответ №2:
Попробуйте эту:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
Прочитайте этот учебник об этой проблеме.
Комментарии:
1. Когда я попробовал этот код, он показал ошибку в ключевом слове class во время компиляции. Итак, я удалил ключевое слово public и успешно скомпилировал его. Когда я запускаю pgm, я получаю тот же результат .. : (
2. Эй, похоже, проблема с classpath, вы используете IDE или простой текстовый редактор? Прочитайте эту статью, она точно описывает вашу проблему: jarticles.com/package/package_eng.html
Ответ №3:
Как запустить Java-программу? Вы правильно передаете аргументы? Обратите внимание на путь к классу. Если у вас есть helloworld.файл Java и скомпилировали его в helloworld.class вы должны запустить это следующим образом (из командной строки в том же каталоге, в котором находится файл класса):
java -cp . helloworld
Комментарии:
1. сначала я задал путь для компилятора java как «path=%path%;c:Program FilesJavajdkbin » . Программа не отображает сообщение Hello world!..
2. Сначала вам нужно скомпилировать файл (javac HelloWorld.java ). Это приведет к HelloWorld.class файл. Затем вы можете запустить его с помощью команды в моем ответе.
3. Вы не используете здесь завершающий или начальный пробел:
" path=%path%;c:Program FilesJavajdkbin "
, не так ли? Или ‘path’ в нижнем регистре вместо PATH? Вы должны быть точны в программировании.4. Это не проблема с path! Прочитайте сообщение об ошибке!
.class
Файл найден, но содержит класс с неправильным именем!