You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

模块化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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:31:43