2010-08-11 5 views
0

Моя Java очень ржавая, и у меня болит голова.Java JAR проблема

Вот мой 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()); 
     } 
} 

мне нужно включать банку файл: ./Java-WebSocket/dist/WebSocket.jar (доступный от http://github.com/TooTallNate/Java-WebSocket/)

Он компилирует OK:

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

Однако, когда я иду бежать:

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. 

Я надеюсь, что кто-то может помочь.

Спасибо заранее,

+0

Является ли файл .class в том же каталоге, что и .java-файл? – MikeTheReader

+0

Просто FYI. По соглашению все классы Java начинаются с символов верхнего регистра. поэтому ваш сервер общедоступного класса должен быть общедоступным классом Server {. – CoolBeans

ответ

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

Или на Windows:

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

Путь к папкам, по умолчанию в текущем каталоге. Вам нужно указать на свои классы, а также на библиотеку.

+0

Легенда, теперь она работает. – Eamorr

0

Не server помещено в пакет? Если это так, укажите полное имя класса.

например. prompt> java -classpath ./Java-WebSocket/dist/WebSocket.jar app.core.server

Я бы также заглавил имя класса.

0

Вы пробовали использовать полное имя класса (your.package.server)?

Смежные вопросы