Reputation: 3346
I am trying to import Gradle project in Intellij Idea with local Gradle distrib and getting stacktrace with the following message: Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'
.
Could anyone explain please what could be the reason?
Upvotes: 208
Views: 220472
Reputation: 1
If you're using multiple versions of JDKs, a couple of things to note.
All the JDKs need to be added to the path.
Since, the JAVA_HOME variable needs to point to one path, assign it to your most frequently used jdk (ex: Java 8). And for rest of the JDK versions, create and assign separate java-home environment variables. e.g. JAVA_HOME_11 for Java 11 and so forth.
For build tools such as gradle, if you're building using CLI, or pipelines, you will need to point your JDK_HOME to the specific version needed. e.g. JAVA_HOME_11 if your project is based on Java 11.
Tools like intellij idea also allow you to set up project wise JDK version. This in-turn helps them choose the corresponding runtime.
In my experience, all four checks need to be made if your project is complaining of Java inconsistency during compilation, build or runs.
Upvotes: 0
Reputation: 101
If you are running gradle build from IntelliJ terminal do followings:
ROOT CAUSE: Major java version reported by $JAVA_HOME must match with java version value which sourceCompatibility property has. If there is a mismatch. This issue will happen.
RESOLUTION: Either change source compatiblity version or change JAVA_HOME value. Motive is to match these versions and everything should be okay.
Upvotes: 1
Reputation: 51
Adding to all information above to change the JVM version on IntelliJ settings, I'd like to mention that you have to do that for all modules of your project.
So if you are working on a multimodule project, make sure you changed the JVM version for all of them.
Upvotes: 2
Reputation: 326
Java 9 JDK 9.0.4
File | Settings | Build, Execution, Deployment | Compiler | Kotlin Compiler
Upvotes: 0
Reputation: 355
Although this question specifically asks about IntelliJ, this was the first result I received on Google, so I believe that many Eclipse users may have the same problem using Buildship.
You can set your Gradle JVM in Eclipse by going to Gradle Tasks (in the default view, down at the bottom near the console), right-clicking on the specific task you are trying to run, clicking "Open Gradle Run Configuration..." and moving to the Java Home tab and picking the correct JVM for your project.
Upvotes: 1
Reputation: 559
you have to change the -> sourceCompatibility = '1.7' in build.Gradle
Upvotes: 5
Reputation: 4474
And so I see from other answers that there are several ways of dealing with it. But I don't believe this. It has to be reduced into one way. I love IDE but, but if I follow the IDE steps provided from different answers I know this is not the fundamental algebra. My error looked like:
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
And the way to solve it scientifically is:
vi build.gradle
To change from:
java {
sourceCompatibility = JavaVersion.toVersion('11')
targetCompatibility = JavaVersion.toVersion('11')
}
to become:
java {
sourceCompatibility = JavaVersion.toVersion('8')
targetCompatibility = JavaVersion.toVersion('8')
}
The scientific method is that method that is open for argumentation and deals on common denominators.
Upvotes: 1
Reputation: 239
I had a very related issue but for higher Java versions:
$ ./gradlew clean assemble
... <other normal Gradle output>
Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
I noticed that the task succeeded when running using InteliJ. Adding a file (same level as build.gradle) called .java-version
solved my issue:
# .java-version
11.0.3
Upvotes: 6
Reputation: 1826
Since I had to compile some source with 7 compatibility, because of some legacy system and ran into the same problem. I found out that in the gradle configuration there where two options set to java 8
sourceCompatibility = 1.8
targetCompatibility = 1.8
switching these to 1.7 solved the problem for me, keeping JAVA_HOME pointing to the installed JDK-7
sourceCompatibility = 1.7
targetCompatibility = 1.7
Upvotes: 11
Reputation: 509
For IntelliJ 2019, JDK 13 and gRPC:
Intellij IDEA -> Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM
and Select correct version.
you might also have to adding below line in your build.gradle dependencies
compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
Upvotes: 41
Reputation: 801
For IntelliJ 2019:
Intellij IDEA -> Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM
Select correct version.
Upvotes: 77
Reputation: 5308
This is what worked for me (Intellij Idea 2018.1.2):
1) Navigate to: File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
2) Gradle JVM: change to version 1.8
3) Re-run the gradle task
Upvotes: 441
Reputation: 39
The following worked for me:
Upvotes: 3
Reputation: 3346
Finally I imported my Gradle project. These are the steps:
JAVA_HOME
to JDK 8 (it was 7th previously) as I had
figured out by experiments that Gradle Wrapper could process the
project with JDK 8 only. org.gradle.java.home
variable) in windows user .gradle directory
as, I guessed, it didn't bring any additional value to Gradle.Upvotes: 32