我的问题是,我创建了一个Java应用程序,如果我在.jar中打开该应用程序,则该应用程序可以正常运行,但我想将其导出为.jar应用程序,因此我尝试将其启动为.exe应用程序,但是我尝试要使用创建的.exe文件,我会收到“错误,发生JNI错误,请检查安装情况...”和“发生Java异常”,我也不知道它是否有用,但是如果我尝试测试Launch4j中的包装程序,我在日志中得到了相同的消息和消息:
Executing:C:\Users\edena\Documents\CGen.exe
Exception in thread "main" java.lang.UnsupportedClassVersionError: CodeGenerator has been compiled by a more recent version of the Java Runtime (class file version 55.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)
我已经尝试查看问题是否出在我的Java版本中,但是它说这是最新的。另外,我尝试在Eclipse中删除元数据并再次执行该过程,但不起作用
答案 0 :(得分:1)
您正在尝试执行使用JDK 11和JRE 8编译的类。
您可以在编译类时指定目标版本8,也可以在launch4j配置中设置最低版本:
<jre>
...
<minVersion>11</minVersion>
...
</jre>
答案 1 :(得分:0)
(代表问题作者发布)。
我找到了使它工作的方法。我进入我的IDE(Eclipse),然后右键单击我的项目,然后单击属性> Java编译器,然后取消选中“使用Java BuildPath上的执行环境'JAVA SE-11'的符合性>我然后将编译器符合性级别设置为1.4