IntelliJ – Versión de fuente no válida: 17

6 minutos de lectura

Creé un nuevo proyecto Java en IntelliJ con Gradle que usa Java 17. Al ejecutar mi aplicación, aparece el error Cause: error: invalid source release: 17.

Mi configuración

he instalado openjdk-17 mediante IntelliJ y establecerlo como mi Project SDK.

los Project language level se ha establecido en 17 - Sealed types, always-strict floating-point semantics.

ingrese la descripción de la imagen aquí

En Modules -> Sources he puesto el Language level a Project default (17 - Sealed types, always strict floating-point semantics).

IntelliJ - Versión de fuente no válida: 17fuentes”>

En Modules -> Dependencies he puesto el Module SDK a Project SDK openjdk-17.

IntelliJ - Versión de fuente no válida: 17dependencias”>

En Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler he puesto el Project bytecode version a 17.

ingrese la descripción de la imagen aquí

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

  • Menú “IntelliJ Idea -> Preferencias -> Compilación, ejecución, implementación -> Herramientas de compilación -> Gradle” en macOS

    – leojh

    20 de enero a las 0:44

  • Está el menú, pero no hay un campo seleccionable para proyecto y Gradle JVM en el menú 🙁 (Windows10 x64, Intellij 2021.3.1 Ultimate)

    – Jay Lim

    27 de enero a las 8:11

  • ¿Cómo puedo marcar esto? Siempre necesito volver a esto.

    –Jorge Tovar

    6 de julio a las 21:46

  • También es posible que desee cambiar el SDK del proyecto desde Archivo -> Estructura del proyecto (⌘;) -> Configuración del proyecto -> Proyecto -> SDK. De lo contrario, podría obtener java.lang.UnsupportedClassVersionError

    – Saiteja Parsi

    8 sep a las 23:20

Establezca Gradle JVM para compilar jvm de destino

Archivo -> Configuración.. ->ingrese la descripción de la imagen aquí

  • Esta ruta ya no es válida. Tienes que ir a preferencias y luego Gradle

    –Jorge Tovar

    18 de julio a las 15:27

avatar de usuario de tmarwen
marwen

El mensaje generalmente implica que su JAVA_HOME La variable de entorno apunta a una variable diferente. Java versión.

Estos son los pasos a seguir:

  • Cerca IDEA IntelliJ
  • Abra una ventana de terminal y verifique su JAVA_HOME valor variable:
    • * sistema nix: echo $JAVA_HOME
    • sistema de ventanas: echo %JAVA_HOME%
  • los JAVA_HOME camino debe estar apuntando a un camino diferente, luego configúrelo en el abrirjdk-17 sendero:
    • * sistema nix: export JAVA_HOME=/path/to/openjdk-17
    • sistema de ventanas: set JAVA_HOME=path\to\openjdk-17
  • Abre tu proyecto de nuevo en IDEA IntelliJ
  • Asegúrese de configurar ambos fuente y objetivo versiones de compatibilidad (no sólo la sourceCompatibility)

Debería poder construir su proyecto.

EDITAR: Cadena de herramientas de Gradle

Es posible que también deba instruir gradle para usar un diferente JVM que el que se utiliza a sí mismo estableciendo el Java plugin toolchain a tu versión de destino:

// build.gradle
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

  • Configuré el hogar de Java en el openjdk instalado por IntelliJ. echo %JAVA_HOME% C:\Users\Michael\.jdks\openjdk-17.0.1. Luego reinicié IntelliJ, agregué targetCompatibility como 17 y vuelva a ejecutar gradle. Al ejecutar mi aplicación sigo recibiendo el error.

    – Miguel

    24 oct 2021 a las 12:23

  • Como otra cosa a tener en cuenta. Si lo configuro para usar Java 11 y dejo mi JAVA_HOME apuntando a 17, funciona bien. Parece que hay algo diferente que no le gusta.

    – Miguel

    24 oct 2021 a las 12:39

  • ¿Cómo estás lanzando la aplicación? ¿Ejecutaste el echo %JAVA_HOME% Comando desde dentro de la IDEA IntelliJ ¿Terminal incluido o una aplicación de terminal separada (cmd / powershell…)?

    – tmarwen

    24 oct 2021 a las 13:46

  • Estoy ejecutando un método principal desde IntelliJ. si corro echo %JAVA_HOME% da salida %JAVA_HOME% en la terminal IntelliJ. En cmd, genera el directorio Java 17 correcto. Si configuro la compatibilidad de la fuente en 11 y uso Java 17 JDK, funciona correctamente, por lo que está encontrando bien el JDK.

    – Miguel

    24 oct 2021 a las 14:13


  • Es posible que deba agregar el toolchain configuración para evitar que Gradle use la predeterminada (esta puede ser la razón por la que tiene éxito al configurar sourceCompatibility en 11)

    – tmarwen

    24 oct 2021 a las 14:24

¡Una imagen vale mas que mil palabras!

Ingrese a las preferencias y cambie Gradle JVM.

ingrese la descripción de la imagen aquí

Establezca JAVA_ HOME EN JDK 17 y verifique esto abriendo cmd -> javac. Esto debería devolver la versión actual del conjunto Java en su máquina

  • Hice esto y reinicié IntelliJ. Sigo teniendo el mismo error. Si hago eco de la JAVA_HOME parece correcto echo %JAVA_HOME% C:\Users\Michael\.jdks\openjdk-17.0.1

    – Miguel

    24 oct 2021 a las 12:26

  • docs.gradle.org/current/userguide/compatibility.html vea esta matriz de compatibilidad asegúrese de que está utilizando este archivo . Intente ejecutarlo una vez en jdk 16.

    – Virbhadra Kaulwar

    25 oct 2021 a las 18:59

Puede haber muchas razones por las cuales intellij arroja este error

  • Compruebe su JAVA_HOME ->
echo $JAVA_HOME

si JAVA_HOME no es correcto, actualice la variable de entorno JAVA_HOME.

  • compruebe si la estructura del proyecto en IntelliJ es correcta.
File > Project Structure > Project Setting > Project -> SDK and Language level should match

File > Project Structure > Project Setting > Modules -> Language Level should match with SDK
  • Verifique y corrija la configuración en las preferencias es correcta
Preferences > Build, Execution and Deployment > Gradle > Gradle JVM should match with SDK (Preferences > Build, Execution and Deployment > maven if you're using maven)

Preferences > Build, Execution and Deployment > Compiler > Java Compiler > Project Bytecode version (this should match with your SDK as well)

  • Hice esto y reinicié IntelliJ. Sigo teniendo el mismo error. Si hago eco de la JAVA_HOME parece correcto echo %JAVA_HOME% C:\Users\Michael\.jdks\openjdk-17.0.1

    – Miguel

    24 oct 2021 a las 12:26

  • docs.gradle.org/current/userguide/compatibility.html vea esta matriz de compatibilidad asegúrese de que está utilizando este archivo . Intente ejecutarlo una vez en jdk 16.

    – Virbhadra Kaulwar

    25 oct 2021 a las 18:59

Avatar de usuario de Darko Manojlovic
Darko Manojlovic

en build.gradle establece sourceCompatibility = ’11’ no sourceCompatibility = ’17’

  • ¡Bienvenido a SO! Por favor, eche un vistazo a las otras respuestas que se dieron antes. Su enfoque ya se menciona allí. Para mantener el sitio limpio y facilitar la búsqueda de respuestas, tratamos de evitar las respuestas dobles.

    – ahuemmer

    29 de agosto a las 7:56

¿Ha sido útil esta solución?