/ / Ancora un altro problema del classpath Java: java, javac, noclassdeffounderror

Ancora un altro problema del classpath Java: java, javac, noclassdeffounderror

Ho lavorato a un progetto in Netbeans. Ora mi piacerebbe inviarlo e consentire ai marcatori di compilarlo con uno script.Tuttavia, ottengo il NoClassDefFoundError quando provo a eseguire tramite la riga di comando, anche quando si imposta manualmente il classpath nella directory corrente.

javac Main.java funziona bene

quindi chiama java -classpath. Principale dà:

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)

risposte:

5 per risposta № 1

Sembra che tu abbia un pacchetto chiamato project2. Se ciò è intenzionale, dovresti usare project2.Main come il nome della classe sulla riga di comando, e il classpath contiene il genitore del project2 directory. Se non è intenzionale, rimuovere o sostituire il package project2; nella parte superiore del file sorgente.


1 per risposta № 2

La parola chiave qui è il "nome sbagliato" nella traccia dello stack. Puoi google e scoprire che c'è un problema con i pacchetti.