【问题标题】:java.lang.NoClassDefFoundError on mac 10.5mac 10.5 上的 java.lang.NoClassDefFoundError
【发布时间】:2011-04-08 09:35:45
【问题描述】:

我的问题开始于前几天我试图运行一个朋友用 java 1.6 编译的 jar 文件。然后我得到了:

java.lang.NoClassDefFoundError

因为我显然只使用 java 1.5。所以我使用系统更新进行了更新。这没有帮助,当我跑的时候:

java -version

在终端中它仍然说我有 java 1.5。然后我在互联网上看到苹果下载页面上有一个“java SE update 4”。我下载并安装了这个文件,但它仍然无法工作。我放弃了,决定回到我在 Eclipse 中的编程。当我尝试在 Eclipse 中编译和运行我的应用程序时,我现在收到了相同的错误 java.lang.NoClassDefFoundError 并且它不会让我继续。我尝试右键单击该项目并查看属性,但它不会让我,只是给了我另一个错误。我想当我安装新的 java 版本时我可能会搞砸一些东西,所以我尝试重新安装 eclipse,但它仍然给了我同样的错误。我尝试创建一个新的工作区,但这也无济于事。然后我想我会尝试通过终端编译:

javac main.java
java main

但我仍然遇到同样的错误。我进入系统设置并禁用“java 1.6”,我尝试使用 javaSE-5 和 javaSE-6 创建新项目,但它不起作用。我现在的想法是,如果它与 eclipse 无法访问项目目录中的 bin 和 src 目录有关,但如果我重新安装它应该可以工作?我还看到有人提到在 os x 中设置类路径,但我不知道。我真的需要一些帮助来解决这个问题,因为我的很多工作都依赖于 eclipse 工作。我宁愿不必仅仅因为这个而重新安装整个操作系统,但如果我不能让它工作,我想没有其他选择。

最好的问候 乔纳斯·克里斯滕森

【问题讨论】:

  • 你能告诉我们哪个类 def 没有找到吗?

标签: java eclipse macos classpath noclassdeffounderror


【解决方案1】:

“重新安装整个操作系统”?天哪,没有。

您的问题与 Java 版本无关。你不明白 CLASSPATH 是如何工作的。

您尝试运行的类不在 CLASSPATH 上。如果您的朋友给了您一个 JAR,您需要将它添加到您的 CLASSPATH 并使用完全解析的类名来运行它。

对您未来的心理健康的忠告:当您遇到问题时,不要假设最坏的情况并采取极端措施。先尝试简单的解决方案。

【讨论】:

  • 在 Eclipse 中设置 CLASSPATH。您没有 Eclipse 问题。如何在 IDE 中添加到 CLASSPATH?这就是你需要学习的课程。
【解决方案2】:

我试图运行一个朋友用 java 1.6 编译的 jar 文件。 ...因为我显然只使用 java 1.5

请注意,如果真的是这种情况,您会收到 java.lang.UnsupportedClassVersionError,因为 Java 5 无法运行为 Java 6 编译的类(它可能可以这样做,但类文件显示“我是Java 6+”(类版本 50),因此 Java 5 将拒绝运行它(Java 5 中的最大类版本为 49)。

【讨论】:

  • 嗨,Thomas 是的,您可能是正确的。我可能得到了 java.lang.UnsupportedClassVersionError。当我运行该文件时,所以我想我必须假设在我更新我的 java 时发生了错误,但我就是不明白为什么一切都搞砸了。
【解决方案3】:

尝试编译

javac -source 1.5 target 1.5 .....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多