首页 > 解决方案 > 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>

标签: exelaunch4j

解决方案


问题是您的程序至少需要 java 版本 59 (java 15),而在您朋友的计算机上只安装了 java 版本 52 (java 8)。

所以有两种解决方案:

  • 如果您不需要较新的语言功能,请使用较旧的 java 版本进行编译
  • 在您想要运行您的程序的朋友计算机上升级到 java 15 jre/jdk

推荐阅读