我不知道怎么把它修好。

场景:

我有一个用gradle构建的应用程序 应用程序使用JavaFX

我想要什么

使用一个变量(每个开发人员机器定义),该变量指向JDK的安装,将用于构建整个应用程序/测试/…

我想过要有gradle。属性文件,定义变量。类似的

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>

我不想要什么

将JAVA_HOME指向所需的JDK

我可以接受很多建议:

一个解决方案,它定义了一个系统环境变量,我可以在我的构建中检查。gradle脚本 在gradle.properties中定义的变量 仅为构建上下文重写JAVA_HOME变量(例如使用JAVA_HOME=<我在其他地方定义的特殊JDK路径定义>) 还有一件我没有想到的事

问题:

如何连接一个变量(如何定义,作为变量在gradle。属性,系统环境变量,…)到构建过程?

我有多个可用的JDK7,需要指向一个特殊版本(最小JDK_u版本)。

任何答案我都很感激,我很感激每一个指向正确方向的提示。


当前回答

如果你使用的是JDK 9+,你可以这样做:

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

tasks.withType<JavaCompile> {
    options.compilerArgs.addAll(arrayOf("--release", "8"))
}

您还可以看到以下相关问题:

Gradle: [Java 9]为-release编译器参数添加方便的方法 用于Gradle的Eclipse插件:JDK API兼容性应该匹配sourceCompatibility选项。

其他回答

如Gradle (Eclipse插件)所示

http://www.gradle.org/get-started

Gradle使用它在你的路径中找到的任何JDK(要检查,使用java -version)。或者,您可以将JAVA_HOME环境变量设置为指向所需JDK的安装目录。


如果您正在使用此Eclipse插件或Enide Studio 2014,可使用的替代JAVA_HOME(在Preferences中设置)将在0.15版本中,请参阅http://www.nodeclipse.org/history

*gradle.properties
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C\:\\Program Files\\Java\\jdk-11.0.15
-------------------------------------------------------------------
**build.gradle**
android {
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion
    compileOptions {
        sourceCompatibility 11
        targetCompatibility 11
    }
    kotlinOptions {
        jvmTarget = '11'
        useIR = true
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }*

在安装了flutter3.0和jdk11之后,这些步骤对我来说是有效的

如果你只是想设置它一次来运行一个特定的命令:

JAVA_HOME=/usr/lib/jvm/java-11-oracle/ gw build

如果您在Intellij IDE中遇到此问题,请尝试此选项

设置Gradle JVM Home 在Project模块设置中设置JDK版本 在“模块”中检查JDK版本

对于Windows,打开cmd并进入你的项目根目录,然后执行如下命令:

gradlew build -Dorg.gradle.java.home="jdk_path"

我的JDK位于这个路径:C:\Program Files\Java\ JDK -11.0.5。

因此,对于我的案例,它看起来如下所示:

gradlew build -Dorg.gradle.java。家= " C: \ Program Files \ Java \ jdk-11.0.5”

另外,如果你想指定一个特定的变量,你可以这样做:

gradlew assembleDebug -Dorg.gradle.java.home=“E:\AndroidStudio\jre”

这个命令将用Debug变体编译你的项目,并在2个文件夹中输出2个apks(Debug + release)。