我使用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
理论上,您可以分别指定source
和target
选项,但从您的评论来看,在针对1.7时,听起来您根本无法使用Java 8语言功能。
请注意,这只涵盖您自己的源代码。如果xbasej-20091203.jar
是针对Java8构建的,那么您需要找到一个以Java7为目标的版本。