exe - JAVA:如何让 java EXE 在不同的 PC 上运行
问题描述
我在 Java 上创建了迷你项目。使用 Eclipse 我将我的项目转换为 .JAR ,然后使用 launch4j 3.12 将 .JAR 转换为 .EXE 。在我的 PC上,exe 工作正常。但是如果我将我的文件分享给我的朋友,文件会报错:
“发生 JNI 错误,请检查您的安装并重试”。
在 launch4j 的控制台打印中:
“线程“主”java.lang.UnsupportedClassVersionError 中的异常:游戏已由更新版本的 Java 运行时(类文件版本 59.0)编译,此版本的 Java 运行时仅识别最高 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
推荐阅读
- python - VScode 扩展:CODE RUNNER 和 PYTHON PREVIEWER 不使用我选择的解释器
- swift - 到 Mono 的 Swift 应用程序可选链接
- swift - 这个 SwiftUI 绑定 + 状态示例如何在不重新调用 body 的情况下工作?
- sql - 在 Microsoft SQL Server 中更新表时运行脚本
- r - 如何确定二维空间数据中点的方向并以顺时针方式排列[对于极端情况]?
- ios - SwiftUI TabView 没有响应
- azure - 计算机视觉 2.0 PDF 到文本不起作用
- python - Python Keylogger:.txt 文件不会保存我的击键
- rust - Bevy 如何根据参数的类型“范围”其系统?
- python - 运行 DAG 时气流调度程序崩溃