java - 导出到 .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 文件发送给另一个需要能够在以后正确运行它的人。
解决方案
我现在实际上设法解决了这个问题。此处描述了类似的问题: https ://coderanch.com/t/701603/java/JRE-JDK
我的问题:我安装了不同版本的 JDK。我需要将我的 JDK 11 路径(在我的情况下:)添加C:\Program Files\Java\jdk-11\bin
到“路径”环境变量并将其移动到顶部。
现在,一切正常java -jar fdm.jar
。
谢谢您的帮助!
推荐阅读
- python - 使用另一个具有布尔值的数据框过滤数据框值
- ip - Contiki os如何将IP地址映射到MAC地址
- c - 函数的冲突类型错误(C 编程)
- linux - 从特定文件中过滤文本并将输出附加到另一个文件 Linux
- ckeditor - CKeditor-4 ,标签标签将每个组件包装在自己的块内
- graphql - 在 apollo-server playground 生成的模式中包含指令
- c# - 如何在 C# 中将任何货币格式转换为“de-de”
- java - 无法在 Vaadin 8 中增加 Grid 的宽度
- django - 序列化程序 create() 方法向 DB 发送 2 个查询
- java - Tomcat 自定义 context.xml 文件从未被考虑在内