由于运行jar文件中的版本兼容性而导致错误

时间:2014-10-20 09:31:27

标签: java

我使用JDK 8.0创建了一个jar文件,我试图在一个拥有JRE 7.0的系统中运行jar文件,但是我收到这样的错误:

C:\Users\admin\Desktop>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文件创建中进行哪些更改。那么它将在没有版本兼容性的情况下运行吗?

1 个答案:

答案 0 :(得分:1)

您需要使用-source的{​​{1}}选项。例如:

javac

理论上,您可以单独指定javac -source 1.7 foo/Bar.java source选项,但根据您的评论判断,听起来您在定位1.7时根本无法使用Java 8语言功能。

请注意,这仅涵盖您自己的源代码。如果target是针对Java 8构建的,则需要找到一个以Java 7为目标的版本。