Java JAR проблема - PullRequest
       5

Java JAR проблема

0 голосов
/ 12 августа 2010

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

Вот мой сервер.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());
        }
}

Мне нужно включить файл JAR:

Компилируется нормально:

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.

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

Заранее спасибо,

Ответы [ 3 ]

2 голосов
/ 12 августа 2010
java -classpath .:./Java-WebSocket/dist/WebSocket.jar server
                ^^

или в Windows:

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

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

0 голосов
/ 12 августа 2010

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

0 голосов
/ 12 августа 2010

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

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

Я бы также прописал имя класса в верхнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...