0

jdk7を使用してコンパイルされたクラスがあり、JDK6を使用して起動しようとしています.classpathのjarはjdk 6を使用してコンパイルされています

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

私のクラスcom.test.myclassは存在しMNO.jarabc.jar xyz.jar pqr.jarjdk6でコンパイルされています

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

最後の手段として、16 進エディタを使用して、.class ファイルのクラス バージョンを 33 から 32 (ファイルの先頭から 7 番目のバイト) に変更できます。クラスが Java 7 の新機能を使用しない場合、問題なく動作します。

于 2013-09-25T14:04:48.680 に答える
-1

クラスでjdk 7固有のコードを使用した場合、それは機能しません。それ以外の場合は機能するはずです。

于 2013-09-25T13:40:55.133 に答える