我在 IntelliJ 中創建了一個使用 Java 17 的 Gradle 的新 Java 專案。運行我的應用程式時出現錯誤Cause: error: invalid source release: 17。
我的設定
我已經安裝了openjdk-17通過IntelliJ,并設定它作為我的Project SDK。
在Project language level已設定為17 - Sealed types, always-strict floating-point semantics。

在Modules -> Sources我已經設定Language level為Project default (17 - Sealed types, always strict floating-point semantics).

在Modules -> Dependencies我已經設定Module SDK為Project SDK openjdk-17.

在Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler我已經設定Project bytecode version為17.

搖籃
plugins {
id 'org.springframework.boot' version '2.5.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.app'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
}
test {
useJUnitPlatform()
}
我已經查看了此處的所有答案,但似乎無法解決此問題。我一定是遺漏了什么,但我找不到。我在使用 Java 8 或 11 時沒有遇到任何問題。
我該如何解決這個問題?
uj5u.com熱心網友回復:
該訊息通常需要您的JAVA_HOME環境變數指向不同的Java版本。
以下是要遵循的步驟:
- 關閉IntelliJ IDEA
- 打開終端視窗并檢查您的JAVA_HOME變數值:
- *尼克斯系統:
echo $JAVA_HOME - 視窗系統:
echo %JAVA_HOME%
- *尼克斯系統:
- 該JAVA_HOME路徑應該是指向不同的路徑,然后將其設定到OpenJDK的17路:
- *尼克斯系統:
export JAVA_HOME=/path/to/openjdk-17 - 視窗系統:
set JAVA_HOME=path\to\openjdk-17
- *尼克斯系統:
- 在IntelliJ IDEA 中再次打開您的專案
- 確保同時設定源和目標兼容版本(不僅是
sourceCompatibility)
您應該能夠構建您的專案。
編輯:Gradle 工具鏈
您可能還需要通過將Java插件工具鏈設定為您的目標版本來指示Gradle使用與它自己使用的JVM不同的JVM:
// build.gradle
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
uj5u.com熱心網友回復:
將 JAVA_HOME 設定為 JDK 17 并通過打開 cmd -> javac 進行檢查。這應該回傳您機器中設定的當前 Java 版本
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334809.html
上一篇:Recyclerview配接器錯誤:AndroidStudio中的Arraylist大小為零
下一篇:使兩個包盡可能松散耦合的模式
