jar转exe launch4j后出现JNI错误
JNI error occurred after converting jar to exe launch4j
我创建了 JavaFX 应用程序的 JAR 文件。 JAR 文件运行良好,没有任何错误。但是当我使用 launch4j 将 jar 转换为 exe 并尝试打开 exe 文件时,它给出了两个错误:
Java 虚拟机启动器
错误:发生了 JNI 错误,请检查您的安装并重试。
Java 虚拟机启动器
发生 Java 异常。
这是日志:
Exception in thread "main" java.lang.UnsupportedClassVersionError: 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:467)
at java.net.URLClassLoader.access0(URLClassLoader.java:73)
at java.net.URLClassLoader.run(URLClassLoader.java:368)
at java.net.URLClassLoader.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
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)
谁能帮帮我?
实际上我在转换为 exe 时在 launch4j 中选择了另一个版本的 JRE。现在我附加了在开发应用程序时安装在我的系统上的 JRE,它工作得很好。
- 在eclipse中右击我的项目
- 转到属性
- 转到java编译器
- 取消选中“使用来自执行环境的合规性”
- Select 编译器合规级别为 1.4
现在创建它的 Jar 并转换为 .exe ,
它对我有用。
我创建了 JavaFX 应用程序的 JAR 文件。 JAR 文件运行良好,没有任何错误。但是当我使用 launch4j 将 jar 转换为 exe 并尝试打开 exe 文件时,它给出了两个错误:
Java 虚拟机启动器 错误:发生了 JNI 错误,请检查您的安装并重试。
Java 虚拟机启动器 发生 Java 异常。
这是日志:
Exception in thread "main" java.lang.UnsupportedClassVersionError: 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:467)
at java.net.URLClassLoader.access0(URLClassLoader.java:73)
at java.net.URLClassLoader.run(URLClassLoader.java:368)
at java.net.URLClassLoader.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
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)
谁能帮帮我?
实际上我在转换为 exe 时在 launch4j 中选择了另一个版本的 JRE。现在我附加了在开发应用程序时安装在我的系统上的 JRE,它工作得很好。
- 在eclipse中右击我的项目
- 转到属性
- 转到java编译器
- 取消选中“使用来自执行环境的合规性”
- Select 编译器合规级别为 1.4
现在创建它的 Jar 并转换为 .exe , 它对我有用。