java - 在Java中: Could not find the main class

标签 java noclassdeffounderror

当我编写一个独立的客户端并尝试执行它时, 它给了我以下错误:

在 Windows 中运行:

Exception in thread "main" java.lang.NoClassDefFoundError: TestClient
Caused by: java.lang.ClassNotFoundException: TestClient
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: TestClient.  Program will exit.

这是在 Linux 中

Exception in thread "main" java.lang.NoClassDefFoundError: TestClient (wrong name: com/tata/bayer/service/TestClient)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        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: TestClient.  Program will exit.

现在我得到

C:\Softwares\apache-tomcat-6.0.33\webapps\tkweb-ws-12.0\WEB-INF\classes\com>java com.tata.bayer.service.TestClient
Exception in thread "main" java.lang.NoClassDefFoundError: com/tata/bayer/service/TestClient
Caused by: java.lang.ClassNotFoundException: com.tata.bayer.service.TestClient
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.tata.bayer.service.TestClient  Program will exit.

最佳答案

看起来你应该运行

java com.tata.bayer.service.TestClient

来自包含“com”的目录,具有适当的目录层次结构,最终通向TestClient.class

您尚未表明此代码是您自己编译的还是别人提供给您的。如果您自己编译它,您通常应该组织源代码,以便它也反射(reflect)包结构。所以你可能会运行:

javac com/tata/bayer/service/*.java
java com.tata.bayer.service.TestClient

或者也许:

# Keep source and class files separate...
javac -d bin com/tata/bayer/service/*.java
java -classpath bin com.tata.bayer.service.TestClient

如果这没有帮助,请提供更多详细信息。

关于java - 在Java中: Could not find the main class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8247739/

相关文章:

android - AdMob 运行时出现间歇性 java.lang.NoClassDefFoundError

gradle - 用 JSch 和 gradle 包装 jar

java - Android Studio 应用程序在手机上运行时出现 NoClassDefFoundError

java - 输出值 1 到 A,每行 B 值(Java)

java - 使用 C++ 中的 NDK 更新 Android UI

java - JavaCC 生成的代码中出现 NoClassDefFoundError

使用 MongoDB 驱动程序时出现 java.lang.NoClassDefFoundError

java - Genson 属性读取错误

java - 如何访问 HashMap 内对象的值

java - 我可以对 2 个 JComboBox 内的项目进行数学计算吗?