JAVA:如何让 java EXE 在不同的 PC 上运行

问题描述

我在 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