1

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

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

安装应用程序后,奇怪的事情发生了。在我的电脑上(在 Mac 的 VMFusion 上运行 win 10 x64),程序可以运行。但在任何其他 Windows 计算机上,它显示以下错误: 在其他 Windows 计算机上运行时错误

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 主应用程序的名称

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

4

1 回答 1

0

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

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

于 2020-01-03T09:45:25.383 回答