【发布时间】:2019-01-21 09:59:29
【问题描述】:
我已经从 OpenJFX 项目下载了 JavaFX Jmod 文件并将它们放在目录G:\openjfx\javafx-jmods-11 中。我正在使用 OpenJDK 11,它在 JAVA_HOME/jmods 中没有 JavaFX jmod,即它不附带 JavaFX 分发。
模块信息文件:
module gui{
requires javafx.graphics;
requires javafx.controls;
exports com.test;
}
我编译如下:
javac -p G:\openjfx\javafx-jmods-11 -d mods --module-source-path src
src\gui\com\test\*.java src\gui\module-info.java
编译成功。但我无法使用以下命令运行编译后的代码:
java -p G:\openjfx\javafx-jmods-11;mods -m gui/com.test.CreateGuiDemo
但我收到以下错误:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.graphics not found, required by gui
【问题讨论】:
-
不完全确定,但我认为您必须指定模块路径(您这样做)和要在编译和运行时路径上添加的模块:--add-modules javafx.controls
-
需要澄清一下,如果您可以在问题中添加详细信息,1.
dir1是什么? 2. 什么是mods? 3. 您是否也有机会在 SDK 上进行同样的尝试? ... 肯定有一些与resolving the module at runtime 相关的噪音,实际上可能有用的东西可能是the effective command shared by Stephan here。 -
@kleopatra 据我了解,仅当您没有 module-info.java 文件时才需要这样做。所以,在这种情况下,它应该是没有必要的。
-
@Mohamed 我也会听从 nullpointer 的建议,并使用带有 jars 而不是 jmods 的 SDK。
-
@nullpointer 抱歉,我没时间试一试。我会在一两天内检查一下。由于我的示例应用程序是模块化应用程序,因此我不需要使用
--add-modules选项。编译没问题,但在运行时命令行选项--module-path不会占用一个以上的路径元素
标签: java javafx java-11 openjfx javafx-11