确定Gradle构建中的JVM供应商

确定Gradle构建中的JVM供应商,gradle,build.gradle,gradlew,Gradle,Build.gradle,Gradlew,我知道如何使用JavaVersion.current()来确定所使用的JVM版本。但是有没有办法确定JVM是否来自Oracle、OpenJDK等 是的,总是可以选择检查系统属性“java.vendor”,但既然Gradle已经为java版本处理了这个问题,我想知道是否也为提供者提供了方便?我也必须这样做,系统属性是最好的方法。下面是一个将几个系统属性放入正在组装的JAR清单的示例 tasks.withType(Jar){ manifest.attributes.putAll([ "jav

我知道如何使用
JavaVersion.current()
来确定所使用的JVM版本。但是有没有办法确定JVM是否来自Oracle、OpenJDK等


是的,总是可以选择检查系统属性“java.vendor”,但既然Gradle已经为java版本处理了这个问题,我想知道是否也为提供者提供了方便?

我也必须这样做,系统属性是最好的方法。下面是一个将几个系统属性放入正在组装的JAR清单的示例

tasks.withType(Jar){
    manifest.attributes.putAll([
"java-vm-specification-version": System.getProperty("java.vm.specification.version"),
        "java-vm-specification-vendor" : System.getProperty("java.vm.specification.vendor"),
        "java-vm-specification-name"   : System.getProperty("java.vm.specification.name"),
        "java-vm-version"              : System.getProperty("java.vm.version"),
        "java-vm-vendor"               : System.getProperty("java.vm.specification.vendor"),
        "java-vm-name"                 : System.getProperty("java.vm.name"),
        "java-specification-version"   : System.getProperty("java.specification.version"),
        "java-specification-vendor"    : System.getProperty("java.specification.vendor"),
        "java-specification-name"      : System.getProperty("java.specification.name")
    ])
}

从中可以看出,没有方便的函数来检索Java供应商字符串。Gradle依赖于系统属性
java.vendor
以及内部代码。

否。我相信检查
java.vendor
是最好的选择。