로컬 Gradle 배포를 사용하여 Intellij Idea에서 Gradle 프로젝트를 가져오고 다음 메시지와 함께 스택 추적을 가져 오려고 Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'합니다.. 누구든지 이유가 무엇인지 설명해 주시겠습니까?
로컬 Gradle 배포를 사용하여 Intellij Idea에서 Gradle 프로젝트를 가져오고 다음 메시지와 함께 스택 추적을 가져 오려고 Could not target platform: 'Java SE 8' using tool chain: 'JDK 7 (1.7)'합니다.. 누구든지 이유가 무엇인지 설명해 주시겠습니까?
답변:
이것은 나를 위해 일한 것입니다 (Intellij Idea 2018.1.2).
1) 파일-> 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle로 이동합니다.
2) Gradle JVM : 버전 1.8로 변경
3) gradle 작업 다시 실행
IntelliJ 2019, JDK 13 및 gRPC의 경우 :
Intellij IDEA-> 환경 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle-> Gradle JVM
및 올바른 버전을 선택하십시오 .
build.gradle 종속성에 아래 줄을 추가해야 할 수도 있습니다.
compileOnly group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
마지막으로 Gradle 프로젝트를 가져 왔습니다. 단계는 다음과 같습니다.
JAVA_HOME를 JDK 8 (이전에는 7 번째)으로 지정했습니다. 로만 .org.gradle.java.home변수 포함)를 Windows 사용자 .gradle 디렉토리에서 삭제했습니다 .Gradle에 추가 값을 가져 오지 않았기 때문입니다.echo $JAVA_HOME하여 확인)로 설정 되었기 때문에이 문제가 발생했습니다 . JAVA_HOME 시스템 전체를 변경하거나 이클립스를 시작 JAVA_HOME=/path/to/jdk8 eclipse하여이 문제를 완화하십시오
매우 관련된 문제가 있지만 더 높은 Java 버전의 경우 :
$ ./gradlew clean assemble
... <other normal Gradle output>
Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
InteliJ를 사용하여 실행할 때 작업이 성공했음을 알았습니다. 라는 파일 (build.gradle과 동일한 수준)을 추가하면 .java-version내 문제가 해결되었습니다.
# .java-version
11.0.3
build.Gradle에서-> sourceCompatibility = '1.7'을 변경해야합니다.
그래서 다른 답변에서 여러 가지 방법이 있음을 알 수 있습니다. 그러나 나는 이것을 믿지 않는다. 그것은 한 가지 방법으로 축소되어야합니다. 나는 IDE를 좋아하지만 다른 답변에서 제공된 IDE 단계를 따르면 이것이 기본적인 대수가 아님을 압니다. 내 오류는 다음과 같습니다.
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
그리고 그것을 과학적으로 해결하는 방법은 다음과 같습니다.
vi build.gradle
변경하려면 :
java {
sourceCompatibility = JavaVersion.toVersion('11')
targetCompatibility = JavaVersion.toVersion('11')
}
될 :
java {
sourceCompatibility = JavaVersion.toVersion('8')
targetCompatibility = JavaVersion.toVersion('8')
}
과학적 방법은 논쟁의 여지가 있고 공통 분모를 다루는 방법입니다.