Estoy usando IntelliJ IDEA Ultimate 2019.3.1 . Cada vez que trato de iniciar cualquier proyecto simple de Java Maven (incluso puede ser un simple Hello World), aparece el siguiente error:
Error:java: error: release version 5 not supported
Ejecutando java --version
por terminal obtengo el siguiente resultado:
openjdk 11.0.5 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1) OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)
Al ejecutar javac --version
por terminal, obtengo el siguiente resultado:
javac 11.0.5
Al ir a la Configuración del compilador de Java (como se sugiere aquí ) veo esto:
Intenté editar la " Versión del código de bytes de destino " a 1.8 pero obtengo los siguientes errores:
Error:(1, 26) java: package javafx.application does not exist Error:(2, 20) java: package javafx.stage does not exist Error:(4, 27) java: cannot find symbol symbol: class Application Error:(12, 23) java: cannot find symbol symbol: class Stage location: class Main Error:(7, 9) java: cannot find symbol symbol: method launch(java.lang.String[]) location: class Main Error:(11, 5) java: method does not override or implement a method from a supertype
Al cambiarlo a la versión 1.11 , aparece este error en su lugar:
Error:java: Source option 5 is no longer supported. Use 6 or later.
¿Cuál crees que sea el problema? ¿Cómo puedo solucionarlo?
Consulte https://stackoverflow.com/a/12900859/104891 .
En primer lugar, configure el language level
/ release versions
en pom.xml
de esa manera:
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Maven establece el valor predeterminado en 1.5 de lo contrario. También deberá incluir el maven-compiler-plugin
si aún no lo ha hecho:
<dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </dependency>
Además, intente cambiar la versión de Java en cada uno de estos lugares:
Archivo -> Estructura del proyecto -> Proyecto -> Proyecto SDK -> 11.
Archivo -> Estructura del proyecto -> Proyecto -> Nivel de idioma del proyecto -> 11.
Archivo -> Estructura del proyecto -> Proyecto -> Módulos -> -> Fuentes --> 11
En el proyecto -> ctrl + alt + s -> Compilación, ejecución, implementación -> Compilador -> Compilador de Java -> Versión del código de bytes del proyecto -> 11
En el proyecto -> ctrl + alt + s -> Compilación, ejecución, implementación -> Compilador -> Compilador de Java -> Módulo -> 1.11.
Si está utilizando Spring Boot como padre, debe establecer la propiedad java.version, ya que esto establecerá automáticamente las versiones correctas.
<properties> <java.version>11</java.version> </properties>
La propiedad definida en su propio proyecto anula lo que esté establecido en el pom principal. Esto anula todas las propiedades necesarias para compilar a la versión correcta.
Se puede encontrar alguna información aquí: https://www.baeldung.com/maven-java-version
Me tomó un tiempo agregar una solución real, pero así es como me deshago de este error de compilación.
Abra las preferencias de IntelliJ.
Busque "compilador" (o algo así como "compi").
Desplácese hacia abajo hasta Maven -> compilador java. En el panel derecho habrá una lista de módulos y su versión de compilación java asociada "versión de código de bytes de destino".
Seleccione una versión >1.5. Es posible que deba actualizar su jdk si no hay uno disponible.
Agrego el siguiente código a mi archivo pom.xml
. Resolvió mi problema.
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Solo tienes que agregar estas dos líneas en tu pom.xml . Después de eso, tu problema desaparecerá.
<!--pom.xml--> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Dentro de IntelliJ, abra el archivo pom.xml.
Agregue esta sección antes <dependencies>
(si su archivo ya tiene una sección <properties>
, simplemente agregue las <maven.compiler...>
a continuación a esa sección existente):
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Si está utilizando IntelliJ, vaya a configuración => compilador y cambie la versión a su versión actual de Java.
La única solución que funcionó en mi caso fue agregar el siguiente bloque a pom.xml
:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>12</release> </configuration> </plugin> </plugins> </build>
De forma predeterminada, su "versión de código de bytes del proyecto no está configurada en el proyecto maven.
Piensa que tu versión actual es la 5.
Solución 1:
Simplemente vaya a "Configuración del proyecto> Compilación, Ejecución ...> compilador> compilador de Java" y luego cambie su versión de código de bytes a su versión actual de Java.
Solución 2:
Agregar el complemento de compilación a continuación en el archivo POM:
<properties> <java.version>1.8</java.version> <maven.compiler.version>3.8.1</maven.compiler.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.version}</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build>
La solución al problema ya está definida en algunas de las respuestas. Pero todavía hay una necesidad de expresar un detalle. El problema está totalmente relacionado con maven, y la solución también está en la configuración de pom.xml. IntelliJ solo lee la configuración de maven, y si la configuración tiene información incorrecta, IntelliJ también intenta usarla.
Para resolver el problema, como se expresa en la mayoría de las respuestas, simplemente agregue las siguientes propiedades al pom.xml del proyecto.
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Después de eso, en el lado de IntelliJ, vuelva a importar la configuración de Maven. Para volver a importar la configuración de maven, haga clic derecho en el archivo pom.xml del proyecto y seleccione Reimportar. La información relacionada con la versión del compilador en las preferencias de IntelliJ se actualizará automáticamente de acuerdo con los valores en pom.xml.
Hice la mayoría de las cosas que propone con el compilador y el código de bytes de Java y resolví el problema en el pasado. Ha pasado casi 1 mes desde que ejecuté mi código Java (y en ese entonces todo estaba arreglado), pero ahora el problema apareció nuevamente. No sé por qué, ¡pero bastante molesto!
Esta vez, la solución fue: haga clic derecho en el nombre del proyecto -> Abrir la configuración del módulo F4 -> Nivel de idioma ... y allí puede definir el nivel de idioma de su proyecto/pc.
Ninguna configuración de maven/pom funcionó para mí tanto en el pasado como ahora y ya configuré el compilador de Java y el código de bytes en 12.
Hice todo lo anterior pero tuve que hacer una cosa más en IntelliJ:
Estructura del proyecto > Módulos
Tuve que cambiar el "nivel de idioma" de cada módulo
En IntelliJ, la versión predeterminada del compilador maven es inferior a la versión 5, que no es compatible, por lo que debemos cambiar manualmente la versión del compilador maven.
Tenemos dos formas de definir la versión.
Primera forma:
<properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> </properties>
Segunda forma:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build>
chicos, también me encontré con este problema después de investigar tanto sobre este problema. Encontré 3 soluciones para resolver este problema.
<properties><java.version>1.8</java.version<maven.compiler.version>3.8.1</maven.compiler.version<maven.compiler.source>1.8</maven.compiler.source<maven.compiler.target>1.8</maven.compiler.target><java.version>11</java.version></properties>
Elimine todo lo que se encuentra debajo de la versión de bytes de destino, déjelo vacío
Luego escriba su versión en la versión de bytes de destino en el compilador de Java ingrese la descripción de la imagen aquí
DISFRUTA DEL CÓDIGO>>>ESPERO QUE TE FUNCIONE
En mi caso fue suficiente agregar esta parte al archivo pom.xml
:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>11</release> </configuration> </plugin> </plugins> </build>
Debe establecer el nivel de idioma, la versión de lanzamiento y agregar el complemento del compilador maven al pom.xml
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> </dependency>
Debe hacer un cambio más mediante cualquiera de los siguientes enfoques:
1 a través de la interfaz gráfica de usuario de IntelliJ
Como lo menciona 'tataelm':
Estructura del proyecto > Configuración del proyecto > Módulos > Nivel de idioma: > luego cambie a su nivel de idioma preferido
2 Edite el archivo de configuración de IntelliJ directamente
Abra el archivo <ProjectName>.iml
(se crea automáticamente en la carpeta de su proyecto si está usando IntelliJ) directamente editando la siguiente línea,
De: <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
Para: <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
Como su enfoque también significa editar este archivo. :)
El enfoque 1 en realidad le pide a IntelliJ que lo ayude a editar el archivo .iml en lugar de que usted lo haga directamente.
For me in Intelij click on File -> Project Structure -> select the modules in language level select 11 - Local variable syntax for lambda parameters, click em aply. Run in terminal mvn clean install.
Ha resuelto mi problema.
Encontré un lugar más para cambiar, que en realidad me arregló.
Project Structure -> < Select Module > Dependencies -> Module SDK < Select version from drop down >
Tuve el mismo problema pero con una pequeña diferencia. Mi mensaje de error fue el siguiente.
IntelliJ: Error:java: error: release version 16 not supported
Así que en Intellij ve a
Aquí hay un campo llamado "Versión del código de bytes del proyecto". Allí el valor predeterminado era 16, lo cambié a 8 y todo funcionó bien.