2010-11-04 10 views
-3

Possible en double:
Classic error, NoClassDefFoundErrorPeut compiler mais pas exécuter le code

La question précédente était une erreur que j'utilise javac pas java, j'ai pu compiler mais ne peut pas exécuter la Code

...> java -cp xSocket-2.8.14.jar SocketClient

produisent

import org.xsocket.connection.*; 
import java.io.IOException; 

public class SocketClient { 

    public static void main(String[] args) {  
     try { 
      IBlockingConnection bc = new BlockingConnection("127.0.0.1", 8090); 
      String req = "Hello server"; 
      bc.write(req + "\r\n"); 
     } catch (IOException e) { 

     } 
     System.out.println("missing"); 
    } 
} 

C:\Users\Wildfire\Desktop>java -cp xSocket-2.8.14.jar SocketClient.java 
Exception in thread "main" java.lang.NoClassDefFoundError: SocketClient/java 
Caused by: java.lang.ClassNotFoundException: SocketClient.java 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: SocketClient.java. Program will exit. 
+0

http://stackoverflow.com/questions/4098787/classic-error-noclassdeffounderror –

+0

Mon Ecilipse IDE jetterait la même exception – Proyb2

+0

Oui, RD, la commande java serait encore donner moi la même erreur. – Proyb2

Répondre

8

Vous exécutez le fichier de classe sans l'extension, pas le fichier java.

java -cp xSocket-2.8.14.jar SocketClient 
-1

Vous devez spécifier le nom complet de la classe que vous souhaitez exécuter. Ainsi, la commande correcte devrait être:

java -cp xSocket-2.8.14.jar SocketClient 
+1

C'est presque exactement la même réponse que @Martin. Si vous n'ajoutez rien de nouveau, c'est juste du bruit. – ChaosPandion

+0

même erreur man. – Proyb2

+0

Avez-vous compilé la classe? où est la classe compilée dans votre système de fichiers? Assurez-vous que vous exécutez la commande à partir du même répertoire que la classe compilée. –

Questions connexes