如何访问 Gradle 使用的`java.home`?

Noe*_*Yap 5 gradle

./gradlew properties显示没有具有值的属性,${JAVA_HOME}并且以下发出错误指示不存在此类属性:

println org.gradle.java.home
println gradle.java.home
println java.home
Run Code Online (Sandbox Code Playgroud)

最后,我想为tools.jarJDK 的一部分指定一个编译时依赖项。例如:

dependencies {
  compile files("${java.home}/lib/tools.jar")
}
Run Code Online (Sandbox Code Playgroud)

Noe*_*Yap 6

println System.properties['java.home']


小智 5

据我所知,它没有很好的记录,但你可以在 Gradle 中使用 Jvm 对象,如下所示:

println org.gradle.internal.jvm.Jvm.current().getJavaHome()
Run Code Online (Sandbox Code Playgroud)

这里有一个讨论线程显示了一些其他用法。

另外,如果您只想解决工具 jar 的问题,您可以使用

org.gradle.internal.jvm.Jvm.current().toolsJar
Run Code Online (Sandbox Code Playgroud)


pcz*_*eus 1

如果您希望设置 Gradle 使用的 JAVA_HOME,您可以设置环境属性:

org.gradle.java.home

指定 Gradle 构建过程的 Java 主目录。该值可以设置为 jdk 或 jre 位置,但是,根据您的构建的用途,jdk 更安全。如果未指定设置,则使用合理的默认值。

如果您尝试引用正在使用的现有 JAVA_HOME,则可以通过以下方式访问系统环境属性:

java.home = "$System.env.JAVA_HOME"
Run Code Online (Sandbox Code Playgroud)