Еще одна проблема пути к классам Java - PullRequest
0 голосов
/ 25 апреля 2010

Я работал над проектом в Netbeans. Теперь я хотел бы представить его и позволить маркерам скомпилировать его с помощью скрипта. Тем не менее, я получаю NoClassDefFoundError, когда я пытаюсь запустить через командную строку. Даже при установке classpath в текущий каталог вручную.

javac Main.java отлично работает

затем вызывается java -classpath. Основные т:

java -classpath . Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: pro
ject2/Main)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Ответы [ 2 ]

5 голосов
/ 25 апреля 2010

У вас, кажется, есть пакет с именем project2. Если это преднамеренно, вы должны использовать project2.Main в качестве имени класса в командной строке, а путь к классу должен содержать родителя каталога project2. Если это не является преднамеренным, удалите или замените package project2; в верхней части исходного файла.

1 голос
/ 25 апреля 2010

Ключевым словом здесь является «неправильное имя» в трассировке стека. Вы можете зайти в Google и узнать, что с пакетами есть проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...