使用 launch4j 将我的 jar 文件转换为 exe 后,它给我一个 JNI 错误,告诉我检查我的安装并重试,然后它给我另一个警告,说发生了 java 异常。
我尝试了不同的方法,例如选择不同的选项,但仍然不起作用。
这是日志:
Exception in thread "main" java.lang.UnsupportedClassVersionError: fluidDynamicsProject/FluidDynamicSerial 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)
最佳答案
这意味着launch4j用来运行程序的JVM版本比编译类fluidDynamicsProject/FluidDynamicSerial的编译器版本要新。您可以尝试在launchj4配置文件中设置最低版本:
<?xml version="1.0" encoding="UTF-8"?>
<launch4jConfig>
...
<jre>
...
<minVersion>11.0</minVersion>
...
</jre>
</launch4jConfig>
请注意,launch4j 可能不支持最新版本的 Java。
或者,您可以降低用于编译类的目标版本。
关于java - 使用launch4j将jar转换为exe后出现JNI错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56591319/