我创建了两个模块化程序。一个是 JavaFX 模块化项目,其中包含module-info.java:
module checker {
requires javafx.fxml;
requires javafx.controls;
requires TextInputProgram; // Btw, IDEA shows me here "Ambiguous module reference"
exports sample;
opens sample;
}
另一个包含module-info.java如下内容的 Maven 项目:
module TextInputProgram {
requires selenium.api;
requires selenium.chrome.driver;
}
因此,我将模块化 Maven 项目作为外部 jar 添加到 JavaFX 中(通过 libs 中的项目结构和通过我指定的 jar 在模块信息中requires)。我还添加了包含用于编译的外部 jar 的变量(除了PATH_TO_FX和PATH_TO_FX_MODS):
set EXTERNAL_JAR="...\out\artifacts\TextInputProgram_jar"
但是当我试图通过命令编译项目时:
dir /s /b src\*.java > sources.txt & javac --module-path %EXTERNAL_JAR%;%PATH_TO_FX% -d mods/checker @sources.txt & del sources.txt
按照本教程
我从 JavaFX 项目类中得到错误:
\src\sample\Controller.java:9: error: package project is not visible
import project.SeleniumProgram;
^
(package project is declared in module TextInputProgram, which does not export it)
1 error
Package is declared in module which does not export it
import project.SeleniumProgram我在 JavaFX 项目中导入以使用来自外部 jar 的类。
更新:
如果我exports project;在 maven 项目的 module-info.java 中添加,那么我会在 JavaFX module-info.java 中看到错误:
如果我删除,requires TextInputProgram;
那么导入时会出现另一个错误
我在这里错过了什么吗?我正在尝试获取这两个程序的可执行 Jar。
慕仙森
相关分类