Reputation: 950
I am working on an android application using Kotlin. I am running a kotlin linter through command line ./gradlew klint.
But it gives me an error:
Gradle 4.4 requires Java 7 or later to run. You are currently using Java 6.
When I check the project structure, I am using the embedded JDK.
I also updated android studio to latest version. I do not know how to update the embedded JDK to latest version.
java version
"1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)
which java
- /usr/bin/java
echo $PATH
- /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/Library/Android/sdk/platform-tools
echo $JAVA_HOME
- empty
Upvotes: 10
Views: 19364
Reputation: 191743
A copy of the latest OpenJDK comes bundled with Android Studio 2.2 and higher, and this is the JDK version we recommend you use for your Android projects.
https://developer.android.com/studio/intro/studio-config.html#jdk
This however, is only for building your apps within Android Studio, not from the terminal with gradlew
, otherwise, it'll use whatever is on your OS's $PATH
variable.
In order to use the embedded JDK, you at least need to set JAVA_HOME
, for example on Linux/Mac,
$ export JAVA_HOME=/path/to/AndroidStudio/jdk # TODO: Find this
$ ./gradlew
My recommendation, however, is to use the mechanism for your OS for installing Java.
For easy Java library management (on Linux & Mac), you can try using sdkman
Upvotes: 12
Reputation: 1296
gradle.properties can be updated to point to the embedded JDK that comes with Android Studio in Mac OS:
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
Upvotes: 9
Reputation: 950
The issue is resolved by adding :
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
at the start of the PATH variable . What i have found is that: There are three java locations.
/usr/bin/java
)/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/
)In my case the gradlew
was always using the java from MAC (point number 1).
So when i added the " java dowloaded from oracle (point 2)" at the start of path variable it started using the one from oracle and my gradlew command ran.
Upvotes: 1