我使用jdk7编译hava类,我尝试使用JDK6调用,类路径中的jar使用jdk 6编译
jdk6/bin/java com.test.myclass -classpath abc.jar xyz.jar pqr.jar MNO.jar
我的班级com.test.myclass
出现在MNO.jar
中,abc.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
由于
答案 0 :(得分:4)
编译源代码时,请提供参数-target 1.6
。这样就会生成1.6兼容的字节码(即类文件将指示它们需要1.6或更高才能运行)。
答案 1 :(得分:2)
作为最后的手段,您可以使用十六进制编辑器将.class文件中的类版本从33更改为32(从文件开头的第7个字节)。如果该类不使用任何Java 7新功能,它将正常工作。
答案 2 :(得分:-1)
如果您在课程中使用过任何jdk 7特定代码,那么它将不起作用,否则它应该有效。