我使用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文件创建中进行哪些更改。那么它将在没有版本兼容性的情况下运行吗?
答案 0 :(得分:1)
您需要使用-source
的{{1}}选项。例如:
javac
理论上,您可以单独指定javac -source 1.7 foo/Bar.java
和source
选项,但根据您的评论判断,听起来您在定位1.7时根本无法使用Java 8语言功能。
请注意,这仅涵盖您自己的源代码。如果target
是针对Java 8构建的,则需要找到一个以Java 7为目标的版本。