假设我安装了 Oracle JDK 11(只是为了让事情更简单)。然后我下载了 Gluon 的 JavaFX 11 并在 JDK 上解压。实际上,我在哪里解压 JavaFX 并不重要(因为我的下一个目标是制作我自己的基于 OpenJRE 的 JRE 安装程序)。然后我正在尝试启动应用程序:
c:\Program Files\MyApp>"c:\Program Files\Java\jre-11\bin\java"
--module-path="c:\Program Files\Java\jre-11\lib"
--add-modules=javafx.controls
--add-modules=javafx.base -jar ./MyApp.jar
我明白了:
启动层初始化时出错 java.lang.LayerInstantiationException: Package jdk.internal.jrtfs 在模块 java.base 和模块 jrt.fs 中
我尝试删除“jrs.fs”然后我的应用程序崩溃,因为一些与类加载器相关的重要系统类丢失了。使用 Java 11 启动 JavaFX 应用程序的正确方法是什么?我现在是否需要每次都为每个应用程序重新分发 JavaFX(因为现在必须在启动应用程序的命令行中指定它的位置)。