2010-04-25 10 views
0

J'ai travaillé sur un projet dans Netbeans. Maintenant, je voudrais le soumettre et permettre aux marqueurs de le compiler avec un script. Cependant, j'obtiens le NoClassDefFoundError quand j'essaye de courir par la ligne de commande. Même lors de la définition manuelle du chemin de classe vers le répertoire en cours.Encore un autre problème de classpath Java

javac Main.java fonctionne très bien

puis appeler java -classpath. Le principal donne:

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) 

Répondre

5

Vous semblez avoir un package nommé project2. Si cela est intentionnel, vous devez utiliser project2.Main comme nom de classe sur la ligne de commande et le chemin de classe contient le parent du répertoire project2. Si ce n'est pas intentionnel, supprimez ou remplacez le package project2; en haut du fichier source.

+0

Merci. J'ai réalisé quelques minutes après avoir posté cette question. Grosse erreur stupide. – pypmannetjies

1

Le mot-clé ici est le "mauvais nom" dans la trace de la pile. Vous pouvez google cela et découvrir qu'il y a un problème avec les paquets.