有一天,当我试图运行一个由朋友在java 1.6中编译的jar文件时,我的问题就开始了。然后我得到了:
java.lang.NoClassDefFoundError
因为我显然只使用java 1.5。所以我使用系统更新进行了更新。当我跑步时,这没有任何帮助:
java -version
在终端中它仍然说我有java 1.5。然后我在互联网上看到苹果下载页面上有一个“java SE update 4”。我下载并安装了这个文件,但它仍然无效。我放弃了,决定回到我的日食编程。当我尝试在eclipse中编译并运行我的应用程序时,我现在收到了同样的错误java.lang.NoClassDefFoundError,它不会让我继续。我试图右键单击项目并查看属性,但它不会让我,只是给了我另一个错误。我想我在安装新的java版本时可能会搞砸了,所以我尝试重新安装eclipse但它仍然给了我同样的错误。我尝试创建一个新的工作区,但这也没有帮助。然后我想我会尝试使用以下方法编译终端:
javac main.java
java main
但我仍然得到同样的错误。我进入了系统设置并且禁用了“java 1.6”,我尝试用javaSE-5和javaSE-6创建新项目,但它不会工作。我现在的想法是,如果它与eclipse无法访问bin&项目目录中的src目录但是如果重新安装它应该可以工作吗?我也看到有人提到在os x中设置类路径,但我不知道。我真的需要一些帮助来解决这个问题,因为我的很多工作都依赖于日食工作。我宁愿不必因为这个而重新安装整个操作系统,但如果我无法让它工作,我想没有其他选择。
最诚挚的问候 乔纳斯克里斯滕森
答案 0 :(得分:3)
“重新安装整个操作系统”?好主,不。
您的问题与Java版本无关。你不明白CLASSPATH是如何工作的。
您尝试运行的类不在CLASSPATH上。如果你的朋友给你一个JAR,你需要将它添加到你的CLASSPATH并使用完全解析的类名来运行它。
对您未来的心理健康的建议:当您遇到问题时,不要假设最坏的情况并采取极端措施。首先尝试简单的解决方案。
答案 1 :(得分:0)
我试图从朋友那里运行一个在java 1.6中编译的jar文件。 ...因为我显然只使用java 1.5
请注意,如果确实如此,那么您将获得java.lang.UnsupportedClassVersionError
,因为Java 5无法运行为Java 6编译的类(它可能会这样做,但类文件说“我“Java 6+”(类版本50),因此Java 5将拒绝运行它(Java 5中的最大类版本将为49)。
答案 2 :(得分:0)
尝试使用
进行编译javac -source 1.5 target 1.5 .....