问题描述
我在 Java 上创建了小项目。使用 Eclipse,我使用 launch4j 3.12 将我的项目转换为 .JAR,然后将 .JAR 转换为 .EXE。在我的电脑 exe 上工作正常。但是如果我将我的文件分享给我的朋友,文件会出错:
“发生 JNI 错误,请检查您的安装并重试”。
在launch4j的控制台打印:
“线程“main”中的异常 java.lang.UnsupportedClassversionError: 游戏已由更新版本的 Java Runtime(类文件版本 59.0)编译,此版本的 Java Runtime 仅识别最高 52.0 的类文件版本”。
但是我指定了jre的路径。我如何解决这个问题并在我朋友的 PC 上启动我的 Java 项目?我的launch4j配置:
<?xml version="1.0" encoding="UTF-8"?>
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>gui</headerType>
<jar>C:\Users\Admin\Desktop\JavaProject\JARFile.jar</jar>
<outfile>C:\Users\Admin\Desktop\JavaProject\game.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir>.</chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<stayAlive>false</stayAlive>
<restartOnCrash>false</restartOnCrash>
<manifest></manifest>
<icon></icon>
<jre>
<path>javafiles/jre</path>
<bundledJre64Bit>true</bundledJre64Bit>
<bundledJreAsFallback>true</bundledJreAsFallback>
<minVersion>1</minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
</launch4jConfig>
解决方法
问题是您的程序至少需要 java 版本 59 (java 15) 而在您朋友的计算机上只安装了 java 版本 52 (java 8)。
所以有两种解决方案:
- 如果您不需要较新的语言功能,请使用较旧的 Java 版本进行编译
- 在想要运行您的程序的朋友计算机上升级到 java 15 jre/jdk