模块化Gradle项目引入Saxon-HE遇模块找不到错误求助
JavaFX模块化Gradle项目引入Saxon-HE运行报错解决
我在IntelliJ自动生成的JavaFX模块化Gradle项目中引入Saxon-HE,运行时触发如下错误:
Error occurred during initialization of boot layer java.lang.module.FindException: Module Saxon.HE not found, required by org.proj.xslgui
项目配置文件内容
build.gradle(主体由IntelliJ自动生成)
plugins { id 'java' id 'application' id 'org.openjfx.javafxplugin' version '0.0.13' id 'org.beryx.jlink' version '2.25.0' } group 'org.proj' version '1.0' repositories { mavenCentral() } ext { junitVersion = '5.9.1' } sourceCompatibility = '17' targetCompatibility = '17' tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } application { mainModule = 'org.proj.xslgui' mainClass = 'org.proj.xslgui.HelloApplication' } javafx { version = '17.0.2' modules = ['javafx.controls', 'javafx.fxml'] } dependencies { implementation("net.sf.saxon:Saxon-HE:11.4") testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}") } test { useJUnitPlatform() } jlink { imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip") options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] launcher { name = 'app' } } jlinkZip { group = 'distribution' }
settings.gradle
rootProject.name = "XSLGui"
module-info.java
module org.proj.xslgui { requires javafx.controls; requires javafx.fxml; requires java.xml; requires Saxon.HE; opens org.proj.xslgui to javafx.fxml; exports org.proj.xslgui; }
Saxon.jar已在外部库中显示,代码依赖解析正常,但运行时找不到模块。requires Saxon.HE是IntelliJ自动生成的,我怀疑Saxon是非模块化项目,这是问题根源。尝试查阅文档和搜索后未找到解决办法。
解决方案
将项目从Gradle切换为Maven后,问题解决。
内容的提问来源于stack exchange,提问作者Max Grüntgens
相关产品推荐
相关产品推荐

