не может запустить простой код Java - PullRequest
2 голосов
/ 01 июля 2011

Я скачал комплект разработчика java для своих 64-битных Windows 7, записал мой код в блокноте, хотя код компилируется из командной строки и создает файл .class, но он отказывается запускаться, показывая код ошибки:

java.lang.NoClassDefFoundError: first Caused by: java.lang.ClassNotFoundException: first   
  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: first.  Program will exit. Exception in thread "main"

Я неоднократно проверял, чтобы имя файла и имя класса были точно такими же (я оставил их строчными буквами «a», чтобы быть уверенным).Но все равно безрезультатно, не могли бы вы предложить несколько решений, пожалуйста ... Я новичок в Java, я в основном программист C / C ++.

Ответы [ 5 ]

5 голосов
/ 01 июля 2011

Java-программа имеет следующую базовую структуру:

ClassName.java

public class ClassName
{
    public static void main(String[] args)
    {

    }
}

попробуйте использовать эту схему для генерации кода.

скомпилируйте и запустите с:

javac ClassName.java
java ClassName
1 голос
/ 01 июля 2011

Вы установили свой classpath?

http://download.oracle.com/javase/1.3/docs/tooldocs/win32/classpath.html

java -classpath <path> <classname>
1 голос
/ 01 июля 2011

Раньше я получал эту ошибку при запуске файла класса.

Попробуйте сделать: java NameOfClass

Вам не нужно расширение .java при запуске, но оно вам нужно для компиляции. Это всегда было моей проблемой.

0 голосов
/ 01 июля 2011

Вполне возможно, после компиляции вашего кода вы будете писать java filename.java. Потому что это искомое исключение происходит тогда.

После компиляции вашей программы с помощью javac filename.java используйте команду для запуска вашего интерпретатора java filename.

При вводе этой команды Java-интерпретатор автоматически начинает интерпретировать filename.class.

команды:

javac filename.java   // to start compiling
java filename         // to start interpreting
0 голосов
/ 01 июля 2011

Вы должны предоставить код.

В любом случае, из Документов Java, classNotFoundException класса :

Брошенный, когда приложение пытается загрузить в класс через его строку использование имени:

  • Метод forName в классе Class.
  • Метод findSystemClass в классе ClassLoader.
  • Метод loadClass в классе ClassLoader.

но нет определения для класса с указанным именем можно найти.

Необходимо прочитать ссылку: Совет: Причины возникновения java.lang.ClassNotFoundException

...