假设我安装了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期间发生错误:在模块java.base和模块jrt.fs中打包jdk.internal.jrtfs
我尝试删除“jrs.fs”,然后我的应用程序崩溃,因为缺少与类加载器相关的一些重要系统类 . 使用Java 11启动JavaFX应用程序的正确方法是什么?我是否需要每次都使用每个应用程序重新分配JavaFX(因为现在必须在启动应用程序的命令行中指定它的位置) .