programing

툴 체인을 사용하는 'Java SE 11' 플랫폼을 대상으로 할 수 없음: 'JDK 8 (1.8)'

padding 2023. 7. 27. 21:39
반응형

툴 체인을 사용하는 'Java SE 11' 플랫폼을 대상으로 할 수 없음: 'JDK 8 (1.8)'

herku에 앱을 배포하려고 하지만 계속 실패하고 다음 오류가 발생합니다. Could not target platform: 'Java SE 11' with using tool chain: 'JDK 8 (1.8)'

JAVA가 있습니다.HOME, Java_PATH 등...설정하세요, 저는 여기 그들 모두의 이미지를 가지고 있습니다, 저는 그들이 옳다고 생각합니다.java-version과 javac-version을 확인하면 둘 다 java 11로 표시됩니다.

저는 또한 루트 폴더에 시스템을 넣으려고 시도했습니다.특성.txt 파일 및 java.dll이 있는 .txta .gradle 파일 대신에도 사용할 수 있습니다.버전 =11이 내부에 있습니다.

또한 제 체격에는 이것이 있습니다.gradle:

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

그러나 배포를 시작할 때 jdk8을 계속 설치합니다(git push herku master).

Gradle app detected
remote: -----> Spring Boot detected
remote: -----> Installing JDK 1.8... done
remote: -----> Building Gradle app...
remote: -----> executing ./gradlew build -x test
remote:        Downloading https://services.gradle.org/distributions/gradle-5.4.1-all.zip

다음은 배포 실패 이미지와 설정된 환경 변수입니다.

enter image description here enter image description here

저는 이 문제에 대해 일주일 동안 고민하고 있습니다. 저는 모든 것을 시도했다고 생각합니다. 하지만 누군가 저를 도와준다면 정말 감사할 것입니다.감사해요!

"JDK 8을 사용하는 Java SE 11" 오류가 발생하는 것과 같은 문제가 있었습니다.문제를 구글링한 후 JAVA로 암시를 받았습니다.HOME 설정.

저는 sdkman을 사용하여 Java 및 Kotlin 버전의 현재 버전 설정을 관리하기 때문에 sdkman에 구성된 현재 Java 버전을 확인한 후 Java 8을 대상으로 하는 GraalVM 버전 19를 가리키고 있다는 것을 알게 되었습니다.

그래서 저는 단순히 현재의 JAVA를 복원했습니다."sdkman use java 11.0.1-zulu"를 사용하는 HOME to 11은 모든 것이 잘 작동했습니다.

소프트제이크

시스템을 추가합니다. 코드 줄을 사용하여 프로젝트에 속성 파일을 보냅니다.

java.runtime.version=11

이미 이름을 변경하여 문제를 해결한 처럼 들립니다.system.properties.txt로.system.properties(그런데, 당신 자신의 질문에 대답해도 괜찮아요!)

다른 사람들에게 도움이 될 경우를 대비해 헤로쿠의 공식 문서는 다음과 같습니다.

작성system.properties파일이 아직 존재하지 않는 경우 버전을 지정하고 git에 커밋합니다.지원되는 버전은 Java 지원 문서에 설명되어 있습니다.파일 내용은 다음과 같습니다.

java.runtime.version=11

https://devcenter.heroku.com/articles/customizing-the-jdk#specify-a-jdk-version

리눅스 Ubuntu에서 openjdk 11을 사용하는 것과 같은 문제가 있었습니다.
하지만 제 업무용 노트북에서는 잘 작동했습니다.동일한 OS Ubuntu 18.04 LTS.
노트북에서 jdk 버전을 확인했습니다.

/usr/lib/jvm/java-11-openjdk-amd64/bin/java

하지만 안에 있는 것은 도구 체인을 사용하고 있습니다: 'JDK 10 (1.10)' 그래서 저는 이 메시지를 받았습니다.

using tool chain: 'JDK 10 (1.10)'

업무용 노트북을 확인해보니 노트북이

 openjdk version "11.0.4" 2019-07-16
 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
 OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

openjdk에 대해 검색하던 중 OpenJDK 11(LTS) 빌드 11.0.4+11을 얻을 수 있는 이 사이트 https://adoptopenjdk.net 를 발견했습니다.

내가 그것을 대안에 추가한 후에.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-11.0.4+11/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk-11.0.4+11/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/jdk-11.0.4+11/bin/javadoc" 1

그리고 나서 그들 모두를 선택합니다.

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc

문제가 해결된 후에.이것이 다른 사람에게 도움이 되기를 바랍니다.

왜 그런지 모르겠지만 헤로쿠는 그라들 버전에서 제공하는 것을 감지하지 못합니다.

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

일반 문자열로 변경한 후 JDK 11이 탐지되었습니다.

sourceCompatibility = '11'
targetCompatibility = '11'

결과:

remote: -----> Building on the Heroku-20 stack
remote: -----> Using buildpack: heroku/jvm
remote: -----> heroku-deploy app detected
remote: -----> Installing JDK 11... done
remote: -----> Discovering process types
remote:        Procfile declares types -> web

저의 경우 Android Studio를 열고 "Android Gradle 플러그인 업그레이드 가능" 알림을 클릭하여 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/57514259/could-not-target-platform-java-se-11-using-tool-chain-jdk-8-1-8

반응형