java - 使用launch4j将jar转换为exe后出现JNI错误

标签 java exe launch4j

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

相关文章:

java - jgoodies 绑定(bind) + 合并频繁更改

java - 在什么条件下调用 ELResolver 的 setValue 方法?

java - java .getresource() 命令的资源在哪里?

java - Android - 是否可以覆盖另一个应用程序的用户数据?

c# - 使用特定用户帐户运行 Windows 应用程序

windows - 您如何构建针对 Windows 的 perl 源代码?

java - 如何将exe文件转换为.jar文件?

Java - Launch4j NoClassDefFoundError 与附加库

java - 如何用Java从包装好的Jar中提取文件

java - Gradle-Launch4j-当前工作目录