IDEA: javac: la versión de origen 1.7 requiere la versión de destino 1.7

Cuando ejecuto una prueba JUnit, usando IntelliJ IDEA, obtengo

enter image description here

¿Cómo puedo corregir esto?

  • Usando SDK 1.7
  • El nivel de lenguaje del módulo es 1.7

La construcción de Maven funciona bien. (Es por eso que creo esto en el problema de configuración de IDEA)

Lo más probable es que tenga opciones de comstackdor incorrectas importadas de Maven aquí:

compilador de opciones

También verifique la configuración de la versión del código de byte del proyecto y del objective ( objective ) delineada en la captura de pantalla.

Otros lugares donde se configura el nivel de idioma de origen :

  • Estructura del proyecto | Proyecto

proyecto

  • Estructura del proyecto | Módulos (verifique cada módulo) | Fuentes

fuentes

El nivel de idioma predeterminado de Maven es 1.5 (5.0), verá esta versión como el nivel de idioma del Módulo en la captura de pantalla anterior.

Esto se puede cambiar usando la configuración maven-compiler-plugin dentro de pom.xml :

  [...]  [...]   org.apache.maven.plugins maven-compiler-plugin  1.8 1.8    [...]  [...]  

o

  [...]  1.8 1.8  [...]  

IntelliJ IDEA respetará esta configuración después de Reimportar el proyecto Maven en la ventana de la herramienta Proyectos de Maven :

reimportar

IntelliJ 15, 2016 y 2017

Similar a lo que se describe a continuación para IntelliJ 13 y 14, pero con un nivel adicional en el panel Configuración / Preferencias: Configuración > Comstackción, Ejecución, Despliegue > Comstackdor > Comstackdor de Java .

enter image description here

IntelliJ 13 y 14

En IntelliJ 13 y 14, compruebe la Configuración> Comstackdor> Interfaz de usuario del comstackdor Java para asegurarse de que no se está orientando a una versión de bytecode diferente en su módulo.

enter image description here

En IntelliJ IDEA 14.1, la “versión del bytecode objective” está en un lugar diferente.

El siguiente cambio funcionó para mí:

Archivo> Configuración …> Comstackción, Ejecución, Despliegue> Comstackdor> Comstackdor de Java : cambie la versión de bytecode de destino de 1.5 a 1.8

enter image description here

enter image description here

¿Has mirado la configuración de tu construcción? Deberías hacerlo si usas maven 3 y JDK 7

  SpringApp   maven-compiler-plugin  1.7 1.7   ...  ...  

Me encontré con esto y la solución fue ir a Configuración del proyecto> Módulos> hacer clic en el módulo particular> pestaña Dependencias. Noté que el Módulo SDK aún estaba configurado en 1.6, lo cambié a 1.7 y funcionó.

He encontrado las opciones necesarias (‘versión de código de bytes de destino’) en la configuración> comstackdor> comstackdor de Java en mi caso (intelij idea 12.1.3)

Modifique el archivo de configuración del comstackdor del proyecto en la siguiente ruta y cambie el ‘objective’ a 1.7:

/project/.idea/compiler.xml

    

Lo resolví configurando el campo en blanco:

Configuraciones> Comstackdor> Comstackdor de Java> Versión del código de bytes del proyecto

Than IntelliJ usa la versión predeterminada de JDK.

De un momento a otro también obtuve este error sin una razón clara. Cambié todo tipo de configuraciones en el comstackdor / módulo, etc. Pero finalmente recreé el proyecto IntelliJ reimportando el proyecto Maven y el problema fue resuelto. Creo que esto es un error.

IntelliJ 12 129.961

He golpeado esto después de una pequeña actualización de IntelliJ IDEA 14 a v14.1. Para mí, cambiar una edición de top / parent pom ayudó y luego hice clic en volver a importar Maven (si no es automático).

Pero tal vez solo sea suficiente para hacer clic con el botón derecho en módulo (s) / agregado / principal y Maven -> Reimportar.

Resolví el método abajo

Archivo >> Estructura del proyecto >> Proyecto >> Nivel de idioma del proyecto -> establecer la versión adecuada (por ej .: 1.5)

check .idea / misc.xml a veces es necesario cambiar manualmente el atributo languageLevel = “JDK_1_X”

Si se trata de un proyecto de Gradle, en su archivo build.gradle, busque la siguiente configuración:

 sourceCompatibility = "xx" targetCompatibility = "xx" 

Para todos los subrpojects, en su archivo root build.gradle, puede poner:

 subprojects { project -> sourceCompatibility = "1.7" targetCompatibility = "1.7" } 

Aunque puede establecer manualmente los niveles de idioma en Idea> Configuración, si se trata de un proyecto Gradle, Idea sincroniza automáticamente los archivos .iml del módulo desde la configuración de Gradle (probados con Idea 15+). Por lo tanto, todos los cambios manuales se anulan cuando se actualiza gradle.

Según la documentación de Gradle , si no están configurados, se utiliza la configuración de JVM actual.

Encontré otra manera de encontrarme con este error. Puedes obtener esto si has reorganizado la estructura de tu directorio, y una de tus poms está apuntando al antiguo padre que ya no configura javac (porque esa configuración se movió a un nivel medio). Si esto ocurre, el nivel superior se establece de manera predeterminada en 1.5 y el pom del nivel inferior que se comporta mal lo hereda.

Otra cosa que debes verificar cuando veas este error es que tu estructura pom está haciendo coincidir tu estructura de directorios correctamente.

Si la construcción de Maven funciona bien, intente sincronizar la estructura de los proyectos de IDEA de Maven e IntelliJ.

En la ventana de la herramienta Maven , haz clic en el botón Actualizar refrescar . Al presionar este botón, IntelliJ IDEA analiza la estructura del proyecto en la ventana de la herramienta Maven.

Tenga en cuenta que esto puede no ser útil si está utilizando EAP build, ya que la función de sincronización de Maven puede romperse algunas veces.

Asegúrate de que la dependencia correcta esté seleccionada. Archivo> Estructura del proyecto

Seleccione su proyecto y vaya a la pestaña Dependencias. Seleccione la dependencia correcta del menú desplegable o cree una nueva.

Si todas las soluciones anteriores no han funcionado para usted (que fue mi caso), puede eliminar los archivos de configuración de intellij:

  • project_directory / .idea / compiler.xml
  • project_directory / .idea / encodings.xml
  • project_directory / .idea / misc.xml
  • project_directory / .idea / modules.xml
  • project_directory / .idea / vcs.xml
  • project_directory / .idea / workspace.xml
  • etc.

Intellij regenerará los nuevos más tarde. Sin embargo, TENGA CUIDADO, esto también eliminará toda la configuración inteligente hecha en el proyecto (es decir: configuración del modo de depuración, …)