2010-08-11 7 views
0

Mon Java est très rouillé et j'ai un peu mal à la tête ici.Java JAR problème

Voici mon server.java:

import java.io.IOException; 

import net.tootallnate.websocket.WebSocket; 
import net.tootallnate.websocket.WebSocketServer; 

public class server extends WebSocketServer 
{ 
     public server(int port) 
     { 
       super(port, Draft.AUTO); 
     } 

     public void onClientOpen(WebSocket conn) 
     { 
       System.out.println("onopen"); 
       /*try 
       { 
         this.sendToAll(conn+" entered the room!"); 
       } 
       catch(IOException ex) 
       { 
         ex.printStackTrace(); 
       }*/ 
     } 

     public void onClientClose(WebSocket conn) 
     { 
       System.out.println("onclose"); 
     } 

     public void onClientMessage(WebSocket conn,String message) 
     { 
       System.out.println("onmessage"+message); 
     } 

     public static void main(String[] args) 
     { 
       int port = 8000; 
       try 
       { 
         port=Integer.parseInt(args[0]); 
       } 
       catch(Exception ex) 
       { 
       } 
       server s = new server(port); 
       s.start(); 
       System.out.println("ChatServer started on port: "+s.getPort()); 
     } 
} 

je dois inclure un fichier jar: ./Java-WebSocket/dist/WebSocket.jar (disponible à partir http://github.com/TooTallNate/Java-WebSocket/)

Il compile OK:

prompt> javac -classpath ./Java-WebSocket/dist/WebSocket.jar server.java

Cependant, quand je vais courir:

prompt> java -classpath ./Java-WebSocket/dist/WebSocket.jar server

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

J'espère que quelqu'un peut vous aider.

Merci à l'avance,

+0

Un fichier .class est-il généré dans le même répertoire que le fichier .java? – MikeTheReader

+0

Juste pour info. Par convention, toutes les classes Java commencent par des caractères majuscules. donc votre serveur de classe publique doit être public class Server {. – CoolBeans

Répondre

2
java -classpath .:./Java-WebSocket/dist/WebSocket.jar server 
       ^^ 

Ou sous Windows:

java -classpath .;./Java-WebSocket/dist/WebSocket.jar server 
       ^^ 

Les valeurs par défaut classpath dans le répertoire courant. Vous devez pointer vers vos classes ainsi que la bibliothèque.

+0

Légende, ça marche maintenant. – Eamorr

0

Le numéro server n'est-il pas placé dans un colis? Si c'est le cas, spécifiez le nom complet de la classe.

par exemple. Je voudrais également mettre le nom de la classe en majuscules, mais.

0

Avez-vous essayé d'utiliser le nom de classe complet (your.package.server)?