运行jar文件时由于版本兼容性而出错



我使用JDK8.0创建了一个jar文件,并尝试在具有JRE 7.0的系统中运行该jar文件,但我遇到了这样的错误:

C:UsersadminDesktop>java -jar test.jar  
Exception in thread "main" java.lang.UnsupportedClassVersionError: test : Uns
upported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

在创建jar文件时,我需要做哪些更改。所以它将在没有版本兼容性的情况下运行?

您需要为javac使用-source选项。例如:

javac -source 1.7 foo/Bar.java

理论上,您可以分别指定sourcetarget选项,但从您的评论来看,在针对1.7时,听起来您根本无法使用Java 8语言功能。

请注意,这只涵盖您自己的源代码。如果xbasej-20091203.jar是针对Java8构建的,那么您需要找到一个以Java7为目标的版本。

最新更新