简体   繁体   English

Java JAR问题

[英]Java JAR problem

My Java is very rusty and I'm having a bit of a headache here. 我的Java非常生锈,我有点头疼。

Here's my server.java: 这是我的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());
        }
}

I need to include a jar file: ./Java-WebSocket/dist/WebSocket.jar (available from http://github.com/TooTallNate/Java-WebSocket/ ) 我需要包含一个jar文件:./Java-WebSocket/dist/WebSocket.jar(可从http://github.com/TooTallNate/Java-WebSocket/获得

It compiles OK: 编译就可以了:

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

However, when I go to run: 但是,当我去跑步时:

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.

I hope someone can help. 我希望有人能帮帮忙。

Thanks in advance, 提前致谢,

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

Or on Windows: 或者在Windows上:

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

The classpath defaults to the current directory. 类路径默认为当前目录。 You need to point to your classes as well as the library. 您需要指向您的类以及库。

Isn't server placed into a package ? server不放在包装中吗? If it is, specify the full class name. 如果是这样,请指定完整的类名。

eg prompt> java -classpath ./Java-WebSocket/dist/WebSocket.jar app.core.server 例如prompt> java -classpath ./Java-WebSocket/dist/WebSocket.jar app.core.server

I would also uppercase the class name, though. 我也将大写的类名。

您是否尝试过使用完整的类名(your.package.server)?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM