首页 > 解决方案 > 导出到 .jar 文件并在 Windows cmd 中运行 - JNI 错误?

问题描述

我在 Eclipse IDE(版本:2019-09 R (4.13.0))中制作了一个 java 程序,其中包含多个应该在终端中运行的类(例如 cmd)。

为此,我首先尝试导出我的项目:Export... > Runnable JAR file

我选择我的 Main 类作为我的启动配置,然后单击单选按钮“将所需的库提取到生成的 JAR 中”。我完成了,导出似乎工作正常。

我知道尝试通过使用此尝试在 cmd 中运行此程序:https ://stackoverflow.com/a/5774976/11583484 (java -jar fdm.jar

现在出现错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: general/Main has been compiled by a more recent version of the Java Runtime (class file version 54.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(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

在某些时候,Java 版本似乎存在问题,可能发生了什么,我可以尝试避免什么?我想将 .jar 文件发送给另一个需要能够在以后正确运行它的人。

标签: javaeclipsecmdjarexecutable-jar

解决方案


我现在实际上设法解决了这个问题。此处描述了类似的问题: https ://coderanch.com/t/701603/java/JRE-JDK

我的问题:我安装了不同版本的 JDK。我需要将我的 JDK 11 路径(在我的情况下:)添加C:\Program Files\Java\jdk-11\bin到“路径”环境变量并将其移动到顶部。

现在,一切正常java -jar fdm.jar

谢谢您的帮助!


推荐阅读