我创建了一个com.company.ep
位于源文件夹中的模块com.company.ep
。(是的,我已经src
从构建路径中删除并删除了它!)在源文件夹中,我有几个包如下:
com.company.ep <--- root source folder
com.company.ep.main <--- package 1
com.company.ep.model <--- package 2
com.company.ep.view <--- package 3
// ... more packages
module-info.java
主类位于包中com.company.ep.main.Main
。在我的module-info.java
中,我已经配置了依赖项:
module com.company.ep {
exports com.company.ep.main;
exports com.company.ep.model;
exports com.company.ep.view;
// ... more exports
requires javafx.controls;
requires javafx.graphics;
}
当我尝试启动我的程序时,eclipse 告诉我:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found, required by com.company.ep
所以,我尝试在命令提示符下运行它:
java -p d:\Applications\openjfx-sdk-11\lib;bin -m com.company.ep/com.company.ep.main.Main
bin
是 Eclipse 的输出文件夹,它工作。
所以,我去了Properties → Run/Debug Settings → Main → Show Command Line
,它显示:
D:\Applications\openjdk-11.0.1\bin\javaw.exe -Dfile.encoding=UTF-8 -p "D:\Development\Eclipse-Workspace\MyProject\bin" -classpath "D:\Applications\openjfx-sdk-11\lib\javafx.base.jar;D:\Applications\openjfx-sdk-11\lib\javafx.controls.jar;D:\Applications\openjfx-sdk-11\lib\javafx.fxml.jar;D:\Applications\openjfx-sdk-11\lib\javafx.graphics.jar;D:\Applications\openjfx-sdk-11\lib\javafx.media.jar;D:\Applications\openjfx-sdk-11\lib\javafx.swing.jar;D:\Applications\openjfx-sdk-11\lib\javafx.web.jar;D:\Applications\openjfx-sdk-11\lib\javafx-swt.jar" -m com.company.ep/com.company.ep.main.Main
我创建了一个添加了所有 JAR 的用户库,并将该库添加到项目的Modulepath中。
然后我尝试VM arguments
在Run/Debug Settings
:中明确设置模块路径-p D:\Applications\openjfx-sdk-11\lib
,我仍然没有运气。
我的问题是:
- 为什么
javaw.exe
? - 为什么
classpath
?由于我的库被添加为模块路径条目。 - 如何在eclipse中配置模块依赖。
我不确定我是否正确配置了 eclipse,或者当我在另一台安装了 Oracle Java SE 的计算机上工作时,它是否可能是 OpenJDK 的问题。
谢谢!