【问题标题】:Can compile but not run the code [duplicate]可以编译但不能运行代码[重复]
【发布时间】:2010-11-05 01:01:52
【问题描述】:

可能重复:
Classic error, NoClassDefFoundError

上一个问题是我使用javac而不是java的错误,我可以编译但无法运行代码

...>java -cp xSocket-2.8.14.jar SocketClient

生产

import org.xsocket.connection.*;
import java.io.IOException;

public class SocketClient {

    public static void main(String[] args) {    
        try {
            IBlockingConnection bc = new BlockingConnection("127.0.0.1", 8090);
            String req = "Hello server";
            bc.write(req + "\r\n");
        } catch (IOException e) {

        }
        System.out.println("missing");
    }
}

C:\Users\Wildfire\Desktop>java -cp xSocket-2.8.14.jar SocketClient.java
Exception in thread "main" java.lang.NoClassDefFoundError: SocketClient/java
Caused by: java.lang.ClassNotFoundException: SocketClient.java
        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: SocketClient.java.  Program will exit.

标签: java


【解决方案1】:

您运行的是没有扩展名的类文件,而不是 java 文件。

java -cp xSocket-2.8.14.jar SocketClient

【讨论】:

    【解决方案2】:

    您应该指定要执行的类的完全限定名称。所以正确的命令应该是:

    java -cp xSocket-2.8.14.jar SocketClient
    

    【讨论】:

    • 这与@Martin 的答案几乎完全相同。如果您不添加任何新内容,那只是噪音。
    • 你编译过这个类吗?您的文件系统中的编译类在哪里?确保从编译类所在的同一目录运行命令。
    • 我的桌面上有 SocketClient 类的 jar 中的 xSocket,当我使用“java -cp xSocket-2.8.14.jar SocketClient”时,出现错误
    • 试试这个:java -cp .;xSocket-2.8.14.jar SocketClient
    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多