523 Stimmen

Wie sage ich Gradle, eine bestimmte JDK-Version zu verwenden?

Ich kann nicht herausfinden, wie ich das zum Laufen bringe.

Szenario:

  • Ich habe eine Anwendung mit Gradle erstellt
  • Die Anwendung verwendet JavaFX

Was ich möchte

  • Verwenden Sie eine Variable (die pro Entwickler-Maschine definiert ist), die auf eine Installation eines JDK zeigt, das für den Bau der gesamten Anwendung / Tests / ... verwendet wird

Ich habe daran gedacht, die gradle.properties-Datei zu haben, die die Variable definiert. Etwas in der Art von

JAVA_HOME_FOR_MY_PROJECT=

Was ich nicht möchte

  • Zeigen Sie JAVA_HOME auf das gewünschte JDK

Ich könnte mit vielen Vorschlägen leben:

  • eine Lösung, die eine Systemumgebungsvariable definiert, die ich in meinem build.gradle-Skript überprüfen kann
  • eine in gradle.properties definierte Variable
  • das Überschreiben der JAVA_HOME-Variable nur für den Build-Kontext (etwas wie use JAVA_HOME=)
  • etwas, an das ich nicht gedacht habe

Frage:

  • Wie verknüpfe ich eine Variable (wie auch immer definiert, als Variable in der gradle.properties-Datei, Systemumgebungsvariable, ...) mit dem Bauprozess?

Ich habe mehr als ein JDK7 verfügbar und muss auf eine spezielle Version (mindestens JDK_u-Version) verweisen.

Jede Antwort wird geschätzt und ich bin dankbar für jeden Hinweis in die richtige Richtung.

7voto

Sergey Alekhin Punkte 71

Führen Sie für Windows die Gradle-Aufgabe mit dem JDK-11-Pfadparameter in Anführungszeichen aus

gradlew clean build -Dorg.gradle.java.home="c:/Program Files/Java/jdk-11"

6voto

Manoj Punkte 634

Ich habe diese Zeile in meiner GRADLE_HOME/bin/gradle-Datei hinzugefügt - export JAVA_HOME=/Pfad/zur/Java/Version

6voto

Chinese Cat Punkte 5108

Für Windows, öffnen Sie cmd und geben Sie Ihren Projektstamm ein, dann führen Sie einen Befehl wie diesen aus:

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

Mein JDK befindet sich in diesem Pfad: C:\Program Files\Java\jdk-11.0.5.

Also sieht es in meinem Fall so aus:

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

Zusätzlich, wenn Sie eine bestimmte Variante angeben möchten, können Sie dies so tun:

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

Dieser Befehl kompiliert Ihr Projekt mit der Debug Variante und gibt 2 APKs (Debug + Release) in 2 Ordnern aus.

5voto

btm me Punkte 173
*gradle.properties
org.gradle.jvmargs=-Xms1536M
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'
    }*

nach der Installation von Flutter3.0 & JDK11 haben diese Schritte bei mir funktioniert

3voto

Remo Meier Punkte 141

Es gibt ein Gradle-Plugin, das automatisch ein JDK herunterlädt/bootstraps:

https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap

Noch keine IDE-Integration und eine vernünftige Shell wird auf Windows benötigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X