EXE4J Jar 到 exe 与 jre 集成导致运行时错误

EXE4J Jar to exe integrated with jre caused runtime error

最近写了一个带有外部jar文件的javafx应用程序(apache POI),jdk的版本是10.0.2。

我用 Intellij 的构建器构建了 javafx 项目。之后,我使用 exe4j 将 jar 文件转换为 .exe。在这个过程中,我将jre添加到项目中。然后,我使用Inno Setup建立了一个安装文件。

安装应用程序后,奇怪的事情发生了。在我的电脑上(win 10 x64 运行ning on VMFusion of Mac),程序可以运行。但是在任何其他 windows 计算机上,它会显示以下错误: run time error on others windows computer

java.lang.ClassNotFoundException: EntranceWindow at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81) at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)

EntranceWindow 是 javaFX 主应用程序的名称

如果描述不够de/tailed,请直接通知我。 有人可以帮帮我吗?

exe4j 不会将 JAR 文件转换为本机代码,它会创建一个本机启动器。您必须将 JAR 文件分发到相同的相对位置。

如果您只想分发单个文件,exe4j 有一个 "JAR in EXE" 模式,其中 JAR 文件包含在可执行文件中并在运行时解压缩,因此您只有一个可执行文件。您可以在 exe4j 向导中启用该选项。