Java JAR 问题

标签 java jar

我的 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());
        }
}

我需要包含一个 jar 文件:./Java-WebSocket/dist/WebSocket.jar(可从 http://github.com/TooTallNate/Java-WebSocket/ 获取)

编译成功:

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

但是,当我去运行时:

提示> java -classpath ./Java-WebSocket/dist/WebSocket.jar 服务器

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.

希望有人能帮忙。

提前致谢,

最佳答案

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

或者在 Windows 上:

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

类路径默认为当前目录。您需要指向您的类以及库。

关于Java JAR 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462394/

相关文章:

java - Hadoop伪分布式: SSH command

java - Eclipse中Hadoop Mapreduce中的导入错误

java - 如何将 BlueJ Java 项目导出到实际的 exe 类型程序(而不是 Jar)中

java - 使用递归方法在两个字符串之间第一个不同字符的索引

java - 在 JBoss 上部署问题

java - 将我的组件设置在指定位置

java - 如何在没有jar文件的情况下在命令行中编译和运行Netbeans java项目?

java - IVY/JAR 错误 - java.lang.NoClassDefFoundError : org/apache/poi/ss/usermodel/Row

java - Swing HTML 呈现显示非常大的项目符号点

Java - 带返回值的异步方法