使用Gradle构建JavaFX应用程序时未找到javax.json模块

j9per5c4  于 2022-11-14  发布在  Java
关注(0)|答案(1)|浏览(259)

我正在尝试使用Gradle运行一个模块化JavaFX应用程序,几乎没有其他模块化和非模块化依赖项,但我遇到了依赖项解析问题。该项目位于Eclipse中,使用OpenJDK 14-。我已经能够使用org.beryx.runtime pluging https://badass-runtime-plugin.beryx.org/releases/latest/运行、构建和打包与非模块化应用程序相同的应用程序,但我希望更进一步,使其模块化。所以现在我使用Badass JLink插件https://badass-jlink-plugin.beryx.org
为了一步一步地进行,我下载并测试了这个示例:https://github.com/beryx-gist/badass-jlink-example-log4j2-javafx,它与我的项目类似,我成功地运行了它。无论如何,Eclipse标记了许多由于未解析的导入而导致的错误,我希望了解如何删除这些错误,但实际上项目编译并运行了。下一步是修改这个工作示例,添加我的真实的项目所需的依赖项,主要是javax.json和jOpenDocument,后者作为一个模块是找不到的。
下面是修改后的module-info.java

module hellofx {
    requires javafx.controls;
    requires org.apache.logging.log4j;
    
    requires javax.json;
    requires org.glassfish;

    exports org.openjfx;
    }

和构建。gradle

plugins {
    id 'application'
    id 'org.javamodularity.moduleplugin' version '1.8.9'
    id 'org.openjfx.javafxplugin' version '0.0.10'
    id "org.beryx.jlink" version "2.24.1"
}

repositories {
    mavenCentral()
}

sourceCompatibility = "11"
targetCompatibility = "11"

dependencies {
    implementation 'org.apache.logging.log4j:log4j-core:2.11.1'
    
    implementation 'javax.json:javax.json-api:1.1.4'
    implementation 'org.glassfish:javax.json:1.1.4'
    implementation 'org.jopendocument:jOpenDocument:1.3'
}

javafx {
    version = 16
    modules = ['javafx.controls']
 }

application {
    mainClass = "org.openjfx.HelloFX"
    mainModule = "hellofx"
 }

compileJava任务失败,并出现以下错误:

C:\Users\xxx\badass-jlink-example-log4j2-javafx-master\src\main\java\module-info.java:5: error: module not found: javax.json
    requires javax.json;
                  ^
C:\Users\xxx\badass-jlink-example-log4j2-javafx-master\src\main\java\module-info.java:6: error: module not found: org.glassfish
    requires org.glassfish;

有没有人能给我们一个开始解决这个问题的提示?

qncylg1j

qncylg1j1#

问题似乎与module-info.class文件有关,该文件包含在导入为org.glassfish:javax.json:1.1.4的旧javax.json中。该库已被重新定位到jakarta,新的org.glassfish:jakarta.json:2.0.1不再显示原始问题。因此解决方案是切换到新的库。

相关问题