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


474

Cuando ejecuto una prueba JUnit, usando IntelliJ IDEA, obtengo

ingrese la descripción de la imagen aquí

¿Cómo puedo corregir esto?

  • Usando SDK 1.7
  • El nivel de idioma 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)

Respuestas:


689

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

opciones del compilador

Verifique también el bytecode del proyecto y del módulo ( target configuración de la versión del ) descrita 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 del plugin maven-compiler dentro pom.xml:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

o

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

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

reimportar


2
Correcto. ¿Es esta configuración común a todos los módulos en un proyecto, o es específica para un módulo dado?
James Raitsev

1
Esta configuración es por proyecto, afecta a todos los módulos.
CrazyCoder

8
¿Hay alguna razón por la cual después de arreglar esto y aplicar que volvería a un valor incorrecto (ya sea a través de cambios de Maven o algo así)?
Patrick

55
@Patrick, la pom.xmlconfiguración del complemento del compilador de Java puede especificar la versión de Java que anulará esta configuración la próxima vez que realice cambios en pom.xml (si la reimportación automática está habilitada) o reimporta el proyecto manualmente.
CrazyCoder

1
@CrazyCoder Cambié mi pom.xml después de cambiar esto una vez mucho antes (estaba esperando otros cambios entrantes en el pom), por lo que parece una explicación bastante razonable. Gracias
Patrick

358

IntelliJ 15, 2016 y 2017

Similar a lo que se discute a continuación para IntelliJ 13 y 14, pero con un nivel adicional en el panel Configuración / Preferencias: Configuración > Compilación, Ejecución, Implementación > Compilador > Compilador Java .

ingrese la descripción de la imagen aquí

IntelliJ 13 y 14

En IntelliJ 13 y 14, verifique Configuración> Compilador> UI del compilador de Java para asegurarse de que no está apuntando a una versión de código de bytes diferente en su módulo.

ingrese la descripción de la imagen aquí


3
Tuve que eliminar mis módulos y dejar que se resolviera automáticamente (dejar en blanco para jdk predeterminado)
Akin Okegbile

3
Funciona para la última Idea14.1
Tushar

Entonces, ¿cuál es la solución aquí?
AlikElzin-kilaka

@ AlikElzin-kilaka, establece el nivel objetivo a lo que necesites.
Drew Noakes el

¿Alguien puede explicar por qué pondrían configuraciones específicas del módulo en la pantalla de configuración de preferencias globales, no en la configuración del módulo?
MK.

61

En IntelliJ IDEA 14.1 la "Versión de código de bytes de destino" está en un lugar diferente.

El siguiente cambio funcionó para mí:

Archivo> Configuración ...> Compilación, ejecución, implementación> Compilador> Compilador Java : cambie la versión de código de bytes de destino de 1.5 a 1.8

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


o es mejor dejarlo en blanco, cuando se puede determinar desde jdk!
Dragonborn

¿Por qué hay una configuración diferente a la de Maven?
AlikElzin-kilaka

42

¿Has mirado tu configuración de compilación? Debería ser así si usas Maven 3 y JDK 7

<build>
    <finalName>SpringApp</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build>

22

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 todavía estaba configurado en 1.6, lo cambié a 1.7 y funcionó.


Intenté esto ... Terminé teniendo que eliminar los módulos individuales y dejarlos para que se resolvieran automáticamente.
Akin Okegbile

14

En mi caso, he encontrado las opciones requeridas ('versión de código de bytes de destino') en configuración> compilador> compilador de Java (intelij idea 12.1.3)


10

Modifique el archivo de configuración del compilador del proyecto en la siguiente ruta y cambie el 'objetivo' a 1.7:

/project/.idea/compiler.xml

<bytecodeTargetLevel>
  <module name="project-name" target="1.7" />
</bytecodeTargetLevel>

Gracias esto funcionó para mí! No olvides hacer "Make Module '[nombre de tu aplicación]'" haciendo clic derecho en el proyecto
Shehaaz

5

Lo resolví estableciendo el campo en blanco:

Configuración> Compilador> Compilador Java> Versión de código de bytes del proyecto

Than IntelliJ usa la versión predeterminada de JDK.


4

De un momento a otro también recibí este error sin una razón clara. Cambié todo tipo de configuraciones en el compilador / módulo, etc. Pero al final solo recreé el proyecto IntelliJ al volver a importar el proyecto Maven y el problema se resolvió. Creo que esto es un error.

IntelliJ 12 129.961


Lo mismo para IntelliJ 14.1.2. Se volvió a importar el proyecto y se solucionó.
srikanth

4

Llegué a 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 sea suficiente para hacer clic derecho en el módulo (s) / agregado / módulo principal y Maven -> Reimportar.


esto funcionó para mí! Lo hice para mi módulo de nivel superior y mis módulos secundarios
abelnation

2

Resolví el siguiente método

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


1

marque .idea / misc.xml a veces necesita cambiar el atributo languageLevel = "JDK_1_X" manualmente


1

Si es un proyecto Gradle, en su archivo build.gradle, busque las siguientes configuraciones:

sourceCompatibility = "xx"
targetCompatibility = "xx"

Para todos los subproyectos, en su archivo raíz build.gradle, puede poner:

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

Aunque puede configurar 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 (probado con Idea 15+). Por lo tanto, todos sus cambios manuales se anulan cuando se actualiza Gradle.

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


1

Encontré otra forma de encontrarme con este error. Puede obtener esto si ha reorganizado la estructura de su directorio, y uno de sus poms está apuntando al padre principal que ya no configura javac (porque esa configuración se movió a un nivel medio). Si esto sucede, el nivel superior predeterminado es 1.5 y el pom de nivel inferior que se porta mal lo hereda.

Entonces, otra cosa que debe verificar cuando vea este error es que su estructura de pom coincide con la estructura de su directorio correctamente.


1

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

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

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


0

Asegúrese de seleccionar la dependencia correcta. Archivo> Estructura del proyecto

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


0

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

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

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


0

Debe cambiar la versión del compilador de Java en la configuración de compilación.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.