Creé un nuevo proyecto Java en IntelliJ con Gradle que usa Java 17. Cuando ejecuto mi aplicación, aparece el error Cause: error: invalid source release: 17 .
Mi configuración
Instalé openjdk-17 a través de IntelliJ y lo configuré como mi Project SDK .
El Project language level se ha establecido en 17 - Sealed types, always-strict floating-point semantics .
En Modules -> Sources , configuré el Language level en el Project default (17 - Sealed types, always strict floating-point semantics) .
En Modules -> Dependencies , configuré Module SDK en Project SDK openjdk-17 .
En Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler , configuré la Project bytecode version en 17 .
gradle
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() }He mirado todas las respuestas aquí , pero parece que no puedo arreglar esto. Me debe faltar algo pero no lo encuentro. No he tenido ningún problema al usar Java 8 u 11.
¿Cómo resuelvo esto?
En intellij, simplemente configure Gradle JVM en Java versión 17.
"Archivo -> Configuración .. -> Compilación, Ejecución, Implementación -> Herramientas de compilación -> Gradle" allí, seleccione su proyecto y configure Gradle JVM en su java 17.0.1
El mensaje generalmente implica que su variable de entorno JAVA_HOME apunta a una versión de Java diferente.
Estos son los pasos a seguir:
echo $JAVA_HOMEecho %JAVA_HOME%export JAVA_HOME=/path/to/openjdk-17set JAVA_HOME=path\to\openjdk-17sourceCompatibility )Debería poder construir su proyecto.
Es posible que también deba indicar a Gradle que use una JVM diferente a la que usa configurando la cadena de herramientas del complemento de Java en su versión de destino:
// build.gradle java { toolchain { languageVersion = JavaLanguageVersion.of(17) } }en build.gradle establece sourceCompatibility = '11' no sourceCompatibility = '17'