使用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/

10-10 19:16