Tengo un proyecto Gradle en Ubuntu. Está escrito en Java 14. Tengo instalado Java 14 JDK. Cuando lo construyo desde la línea de comando, todo funciona, ¡pero nadie quiere usar una línea de comando! Cuando lo abro en IntelliJ IDEA, arroja un error:
* Where: Initialization script '/tmp/ijmapper.gradle` * What went wrong: Could not compile initialization script '/tmp/ijmapper.gradle`. > Startup failed: General error during semantic analysis: Unsupported class file major version 60.seguido de un seguimiento de pila largo e inútil que dice mucho sobre Groovy. (El proyecto no es un proyecto Groovy; es un proyecto Java).
La versión principal 60 se refiere a Java 16, que este proyecto no está usando. Ya ingresé a Project Structure y me aseguré de que esté configurado para usar JDK versión 14. Pero el nombre "ijmapper" sugiere que esto tiene algo que ver específicamente con IntelliJ, y es probable que sea un problema de IDE en lugar de un problema de proyecto.
El archivo del mapeador simplemente dice:
if(!ext.has('mapPath')) ext.mapPath = { path -> path}
Un simple polyfill, en otras palabras.
¿Qué está pasando aquí y cómo puedo solucionarlo?
Solucioné este problema cambiando la configuración de Gradle JVM en la configuración de IntelliJ:
En el cuadro de diálogo Configuración/Preferencias , vaya a Compilación, Ejecución, Implementación → Herramientas de compilación → Gradle .
En la sección Gradle , cambie la opción Gradle JVM . Seleccione una JVM de Gradle que funcione para usted.
Consulte Resolver la versión de Gradle JVM para el proyecto existente
Actualizar Gradle versión 6.8.3 a 7.0 resolvió mi problema. Puedes actualizarlo:
Funciona con el complemento Android Gradle versión 4.2.0.
Lo arreglé también, de la manera difícil:
java -version muestra la versión correcta ahoragradle -version muestra la versión correcta ahora incl. la JVM correctaAhora se construye sin error: archivo de clase no compatible versión principal 60
Para mí, (en Flutter ) el problema era que estaba usando Java JDK versión 16 , pero la versión 16 no es compatible con algunos paquetes.
Entonces, cambié a la versión 15 de JDK.
En Windows, hice lo siguiente:
Cierre su IDE/Terminal actual (no se salte este paso).
Desinstale el Java JDK actual y reinicie su computadora.
Descargue e instale la versión 15 de Java JDK desde aquí (es necesario que cree una cuenta para poder descargar).
Actualice la variable de entorno JAVA_HOME .
Mi proyecto usa Java 16 y Maven para crear una aplicación Spring Boot. Recibí el mismo error y pude resolverlo con estos pasos:
Creo que esta configuración de código de bytes (16) estaba en conflicto con la configurada en mi proyecto (11). Quitar la anulación lo aclaró.
Para mí, se solucionó actualizando la versión de Gradle.
En el archivo bajo el directorio gradle/wrapper/gradle-wrapper.properties , simplemente cambie el número de versión de Gradle. Por ejemplo, si su versión de Gradle es 6.3 , cambie esto:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zippara:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zipNo está disponible en Archivo → Estructura del proyecto → Proyecto para el proyecto con el que estaba trabajando.
En mi caso ( Manjaro Linux), el problema era que había un error conocido con OpenJDK 16 y Gradle. (Consulte: * " Archivo de clase no compatible versión principal 60" Uso de la cadena de herramientas con Java 16 #16766 *)
La solución fue apuntar Java a openJdk-11 con el siguiente comando:
sudo archlinux-java set java-11-openjdkAsegúrese de que este JDK esté instalado. En Arch Linux y Manjaro puedes comprobarlo con:
archlinux-java status
Después de cambiar a OpenJDK 11, todo vuelve a funcionar como se esperaba.
Me encontré con el mismo problema. Parece que JDK 17 no es compatible con Gradle 7.0.2.
Descargue JDK 16 , _somewhere_ (cerca de las carpetas de otros JDK o lo que sea)
A continuación, actualice: Estructura del proyecto → Ubicación del SDK → Configuración de Gradle → JDK de Gradle para que coincida con ese _somewhere_
Al final, no olvide sincronizar el proyecto con los archivos de Gradle .
Por el momento, no funcionará con JDK 17, por lo que se sugiere utilizar el Java integrado proporcionado por el IDE en Configuración /Gradle.
Enfrenté el mismo problema, pero con Android Studio. Parece que JDK 17 no es compatible con Gradle 7.0.2 como lo mencionaron los demás.
Solucioné este problema cambiando la configuración de Gradle JDK en la configuración de Android Studio:
En el menú Archivo → Configuración → Compilación, Ejecución, Implementación → Herramientas de compilación → Gradle .
En la sección Gradle, cambie la opción Gradle JVM a otro JDK (ejemplo: JDK11 ).
Las versiones posteriores de Gradle (versión superior a la 7.3.2 ) admiten la ejecución y compilación con Java 17.
En Spring Tool Suite (STS)/Eclipse, incluso después de cambiar la ruta de compilación, el compilador, el JRE predeterminado de 16 a 11.0, no se arregló. Finalmente, en el archivo STS.ini, tuve que cambiar el argumento -vm de
-vm plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149/jre/bin
para
-vm C:\Program Files\Java\jdk-11.0.12\bin
Lo arreglé instalando el administrador de paquetes chocolatey ( https://chocolatey.org/install ) y ejecutando:
choco install -y nodejs.install openjdk8en el administrador de powershell.
Cambiando, como la gente mencionó anteriormente, la url con la compatibilidad correcta: https://docs.gradle.org/current/userguide/compatibility.html En mi caso 7.3 porque estaba usando JDK 17 y Java 8 funcionó para mí.
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip ```