运行Java应用程序NoClassDefFoundError

时间:2010-12-13 20:00:37

标签: java command-line terminal

当我通过执行命令java rmiserver.LightBulbServer.class从终端运行我的程序时,我得到 NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: rmiserver/LightBulbSe
rver/class
Caused by: java.lang.ClassNotFoundException: rmiserver.LightBulbServer.class
        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)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: rmiserver.LightBulbServer.class.  Program will ex
it.

3 个答案:

答案 0 :(得分:1)

您最有可能像这样运行应用程序:

java rmiserver.LightBulbServer.class

运行程序时不应添加.class扩展名;仅使用类的名称:

java rmiserver.LightBulbServer

答案 1 :(得分:1)

您正在运行命令:

java rmiserver.LightBulbServer.class

当你应该跑步时

java rmiserver.LightBulbServer

答案 2 :(得分:0)

在Java可以对系统执行任何操作之前,您需要设置一些变量。这就是为什么有些人创建批处理文件来运行他们的Java程序而不修改系统变量。

但这通常是因为你没有设置 CLASSPATH

例如,以下内容可能有效,也可能无效:

set JAVA_HOME=C:\jdk1.5.0_06
set PATH=C:\jdk1.5.0_06\bin;C:\Windows;C:\Windows\System32
set CLASSPATH=.

java -jar myprogram.jar

或尝试此命令:

java -jar myprogram.jar -classpath .