我正在开发一个使用 java 模块系统的 Java 11 应用程序。我需要使用反射来访问 JavaFX 库的内部函数。包含该函数的 java 模块不会导出它,因此在运行 gradle 构建任务时出现以下错误:
import com.sun.javafx.tk.TKStage;
^
(package com.sun.javafx.tk is declared in module javafx.graphics, which does not export it to module com.sampleapp)
我认为这意味着我需要执行 --add-exports javafx.graphics/com.sun.javafx.tk=com.sampleapp
,但是,我不确定如何执行此操作在 Gradle 里。我试过将它添加到 applicationDefaultJvmArgs
,但没有成功。
application {
...
applicationDefaultJvmArgs = listOf(
"--add-exports javafx.graphics/com.sun.javafx.tk=com.sampleapp"
)
}
我也试过将它添加到 gradle.properties.kts
但没有成功。
org.gradle.jvmargs = listOf(
"--add-exports javafx.graphics/com.sun.javafx.tk=com.sampleapp"
)
最佳答案
我能够通过添加来解决问题:
tasks.withType<JavaCompile> {
options.compilerArgs.addAll(arrayOf(
"--add-exports", "javafx.graphics/com.sun.javafx.tk=com.sampleapp"
))
}
关于gradle - 如何将 --add-exports 添加到 gradle 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68687611/