0

我有使用 jdk7 编译的类,我正在尝试使用 JDK6 调用,并且类路径中的 jar 是使用 jdk 6 编译的

jdk6/bin/java com.test.myclass -classpath abc.jar xyz.jar pqr.jar MNO.jar

我的课程com.test.myclass出现在jdk6 中MNO.jarabc.jar xyz.jar pqr.jar用 jdk6 编译

使用 jdk7 它可以工作

jdk7/bin/java com.test.myclass -classpath abc.jar xyz.jar pqr.jar MNO.jar

这也失败了。任何输入来解决这个问题。?

Exception in thread "Main Thread" java.lang.UnsupportedClassVersionError: com/test/MyClass: unsupported classversion 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.test.MyClass.  Program will exit.
256

谢谢

4

3 回答 3

4

编译源代码时,给出参数-target 1.6. 这样将生成符合 1.6 的字节码(即类文件将指示它们需要 1.6 或更高版本才能运行)。

于 2013-09-25T13:29:30.473 回答
2

作为最后的手段,您可以使用十六进制编辑器将 .class 文件中的类版本从 33 更改为 32(文件开头的第 7 个字节)。如果该类不使用任何 Java 7 新特性,它将正常工作。

于 2013-09-25T14:04:48.680 回答
-1

如果您在课堂上使用了任何 jdk 7 特定代码,那么它将无法正常工作,否则它应该可以工作。

于 2013-09-25T13:40:55.133 回答