我正在日食中做作业,它报告没有错误,甚至没有警告。当我尝试从终端编译它时,我得到了以下错误。它通过eclipse运行并编译得很好。我认为它与java版本有关?无论如何要解决它或试图绕过它?
vedran@vedran-debian:~/java/oop/Aufgabe6$ java Test
Exception in thread "main" java.lang.UnsupportedClassVersionError: Test : Unsupported major.minor version 51.0
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: Test. Program will exit.
Java版:
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
编辑:
谢谢大家的解释。这似乎是一个java6 / 7问题。我只是用1.6编译它,它就像魅力一样。
答案 0 :(得分:6)
Test.class文件已在Java 7(主要/次要版本51.0)中编译,因此它与Java 6(主要/次要版本50.0)运行时不兼容。在Java 6(或更早版本)中编译.java文件,或在Java 7运行时中运行.class。
答案 1 :(得分:3)
也许你在eclipse中的编译器有所不同?偏好 - >编译器:编译器级别。也许Java 7?
如果您使用的是Linux,则可以查看所有已安装的运行时环境:update-alternatives --config java
。在这里你可以选择正确的。在这里你应该能够找到OpenJDK 7。
答案 2 :(得分:2)
51.0表示Java版本7,因此您尝试运行的类文件是使用版本7编译器编译的。如果需要使用版本6 JVM运行代码,则应指示编译器发出版本6兼容的字节代码。
javac -version 6 ...
该命令行参数将强制更高版本的编译器将其输出限制为与版本6运行时环境兼容的字节码。
答案 3 :(得分:1)
您是否有可能编译了测试程序Java 7并且现在正尝试在终端中针对Java 6运行它?我会尝试在终端(即Java 6)中重新编译,如果是这种情况,然后尝试重新运行该程序。
答案 4 :(得分:1)
在Eclipse中,转到窗口 - >首选项 - > Java - >编译器,您将看到标有“编译器合规性级别”的字段。将其设置为1.6
,然后在Eclipse中重新编译。
Eclipse与命令行javac
之间存在Java版本不匹配。具体来说,您的javac
似乎使用的是64位1.6。 Eclipse显然使用1.7。
答案 5 :(得分:0)
如果上面的解决方案全部设定,如果你仍然有同样的问题和 如果您使用MAVEN,请检查pom.xml。 JAVA ASSIST JAR应该指向16.1-GA,如果您使用jdk 1.6 else对应的版本应该为您指向的jdk添加。(例如:3.17.1 for jdk 7)。对于jdk 6添加依赖项以及以下详细信息< / p>