当前位置: 首页 > 面试题库 >

从终端运行Java文件时出现java.lang.NoClassDefFoundError

西门马鲁
2023-03-14
问题内容

我是Java新手。我一直在使用Eclipse测试一个简单的Java类(名为NewHelloWorld),它在控制台中运行良好。当我尝试从终端执行相同的操作时,它会正确编译(创建HelloWorld.class而不给出任何错误),但是随后java NewHelloWorld显示以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: NewHelloWorld (wrong name: org/kodeplay/kodejava/NewHelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: NewHelloWorld. Program will exit.

我也试过了,java -classpath . NewHelloWorld但是给出相同的错误也没有用。

这些是环境变量的值:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
CLASSPATH="/usr/lib/jvm/java-6-openjdk/lib:."

还有其他要求吗?或者我在这里错过了什么吗?谢谢

PS:使用Ubuntu 10.04桌面


问题答案:

错误的名称:org / kodeplay / kodejava / NewHelloWorld

cd到包根目录,以便您位于包含org文件夹的文件夹中,然后执行

java -cp . org.kodeplay.kodejava.NewHelloWorld


 类似资料:
  • 在Intellij IDEA中,当我在终端中运行java文件或运行jar工件时,我会得到以下错误: 我的电脑上安装了最新的jdk和运行时环境,我只安装了一个运行时环境。另外,我对程序的实际编译没有问题,只有“$java program”命令。

  • 我使用的是一个安装了Ubuntu的云虚拟机。安装的Java版本为: 在编译java程序时,我必须使用两个jar:和。我使用的终端命令是: 使用将disco和sqlite jar添加到类路径中。 这将在目录中创建我的文件,而不会出现错误。这些JAR包含在目录中。 包含这部分代码,从头开始: 当我在终端中运行以下内容时,问题就开始了: 终端机显示我: 错误:出现JNI错误,请检查您的安装并在线程“ma

  • 问题内容: 我已经将一个Java项目编译到一个Jar文件中,并且在运行它时遇到了问题。 当我跑步时: 我收到以下错误 该类文件不在jar的根目录中,因此我尝试更改主类的路径以使其与该类文件的路径匹配,并且遇到相同的问题。 我应该展平文件结构吗?如果是这样,我该怎么做。如果有任何用途,我正在使用Ant来构建Jar文件。 更新 这是jar的内容以及相关的Ant部分,我将我工作的公司的名称更改为“ or

  • 我有以下文件夹结构: null 当我运行Pycharm的fish.py时,它工作得非常好。但是,当我从终端运行fish.py时,我得到错误的模块。 我在终端中使用的命令:来自应用程序文件夹。 我已经研究了这里建议的解决方案:从不同的文件夹导入文件,将应用程序文件夹的路径添加到帮助中。但是,我想知道是否有其他方法可以使它工作,而不在中添加两行代码。这是因为我在/products目录中有许多脚本,不想

  • 问题内容: 我一直在寻找使用Java运行时运行外部程序的方法。可以正常工作,例如: 如您所愿创建一个新目录。现在,在Mac的bash窗口中,我可以这样写: 在名为testgame的文件夹上运行“ Love”游戏引擎。现在,之所以可行,是因为我将“ love”作为别名来调用love可执行文件。我有一种感觉,这是下面没有理由 不 工作: 而且(对于那些想知道的人)也不是: 毫无疑问,这要么是Java方

  • 我对Java比较陌生,我完成了教程,其中解释了如何创建和运行JAR文件的示例。您能告诉我在命令行中运行JAR应该做些什么吗? 我创建了JAR文件: 此Jar文件已复制到桌面 我希望命令:java-jar06_02.jar应该执行文件。 在IntelliJ终端中,我切换到桌面目录(文件所在)并运行:java-jar 06\u 02。罐子 这会导致错误: 错误:发生JNI错误,请检查您的安装并在线程“