Java 可以编译但不能运行代码

Java 可以编译但不能运行代码,java,Java,可能重复: 前面的问题是一个错误,我使用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 {

可能重复:

前面的问题是一个错误,我使用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文件

java -cp xSocket-2.8.14.jar SocketClient

您应该指定要执行的类的完全限定名。因此,正确的命令应该是:

java -cp xSocket-2.8.14.jar SocketClient

我的Ecilipse IDE会抛出相同的例外情况:调用java命令时,您需要将“.java”从类名中去掉。您没有仔细复制上一个问题的答案:)此外,您可以在上一个问题中添加更多注释。@user217582:这是您要问的第三个相同的问题。你知道,这太粗鲁了。这几乎和@Martin的回答完全一样。如果你没有添加任何新的东西,那就是噪音。你编译过这个类吗?编译的类在文件系统中的什么位置?确保您从编译类所在的同一目录运行该命令。我的桌面上有xSocket-in-jar和SocketClient类,当我使用“java-cp xSocket-2.8.14.jar SocketClient”时,出现了一个错误:java-cp。;xSocket-2.8.14.jar SocketClient