bully bully - 5 months ago 90
Java Question

How do I tell Gradle to use specific JDK version?

I'm sorry for the dumb question, but I can't figure out to get this working.

Scenario:


  • I have an application built with gradle

  • The application uses JavaFX



What I want


  • Use a variable (defined per developer machine) which points to an installation of a JDK which will be used for building the whole application / tests / ...



I thought about having the
gradle.properties
file, defining the variable. Something like

JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>


What I don't want


  • point
    JAVA_HOME
    to the desired JDK



I could live with many suggestions:


  • a solution that defines a system environment variable which I'm able to check in my build.gradle script

  • a variable defined in gradle.properties

  • overriding the JAVA_HOME variable only for the build context (something like
    use JAVA_HOME=<my special JDK path defined somewhere else defined>
    )

  • something else I didn't think about



Question:


  • How to wire a variable (how ever defined, as variable in the
    gradle.properties
    , system environment variable, ...) to the build process?



I have more than one JDK7 available and need to point to a special version (minimum JDK_u version).

Like always, any answer is appreciated and I'm thankful for every hint to the right direction. Especially as Google seems to mislike me today -.-"

Answer

Two ways

  1. In gradle.properties in the .gradle directory in your HOME_DIRECTORY set org.gradle.java.home=/path_to_jdk_directory

  2. In your gradle.build

    compileJava.options.fork = true
    compileJava.options.forkOptions.executable = /path_to_javac