我的jar文件正在开发机器上,但不会在测试pc上执行。 我查了一下,发现没有安装jdk,我没有在那台特定的PC上安装权限。缺少JDK是我不会得到结果的原因吗?这就是我得到的。
C:\Users\autosterileprocuser>java -jar C:\Users\autosterileprocuser\Documents\Sc
hedule.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: sterileProc/S
cheduleApp : Unsupported major.minor version 51.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$000(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 java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: sterileProc.ScheduleApp. Program will exit.
答案 0 :(得分:1)
这是一个编译版本问题。看看javac命令(http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html)的-target选项。在Eclipse中,它在Project Preferences中可用 - > Java编译器。将其设置为要运行程序的目标java。
答案 1 :(得分:0)
这是典型的Java版本问题。您正在使用旧版本的java执行jar,而不是用于编译它的jar。
在两台计算机上输入java -version,你会看到差异。
例如,当您使用JDK7编译jar并使用JRE6执行它时,就会发生这种情况。
答案 2 :(得分:0)
要执行jar文件,您需要一个JRE Java Runtime环境,但您不需要JDK Java开发环境。
错误表明安装的JRE不支持使用更高版本的JDK编译的java类,您可以使用javac的-target选项来指定您的类将被编译的版本。
答案 3 :(得分:0)
您使用的是旧版Java。这就是java.lang.UnsupportedClassVersionError的含义,所以只需在测试机器上更新Java。