尝试在cmd中运行可执行Jar时出错

时间:2020-05-17 05:02:12

标签: java cmd jar

我知道还有其他一些类似的问题,但是解决方案似乎不起作用。 (我已经读过大约十二个堆栈溢出论坛)

这是我尝试使用CMD进行的操作:

C:\Users\warre>java -jar C:\Users\warre\OneDrive\Desktop\MirrorUserInput.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: usefulTools/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 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)

C:\Users\warre>javac -version
javac 14

C:\Users\warre>java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode, sharing)

Here is my source code.

我知道某些问题可能是由JDK和JRE之间的差异引起的,但是当我试图了解这种复杂性时我感到困惑(我知道两者之间的一般区别,并且已经阅读了几篇文章,但感到困惑正是为什么它会导致日食问题。)

我用eclipse导出了这个。我使用了所有默认设置。如果需要,我可以发送此信息的屏幕截图。

1 个答案:

答案 0 :(得分:0)

您是对的。当JDK的版本高于JRE的版本时,就会出现差异。

报告的主要数字是:

Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

根据错误消息,我可以肯定地说,您的Eclipse JDK版本设置为Java 13,而您的计算机的JRE版本是8。

您有两种解决方案。一种解决方案可能是将您的JRE至少升级到13。或转到eclipse Java编译器选项,并将JDK版本降低为JDK8。

在Eclipse中,转到菜单命令窗口->首选项-> Java->编译器,然后将“编译器符合级别”设置为1.8。