javac: versión de destino no válida: 1.8

87

Recientemente descargué JDK 1.8.0.0_06 que viene incluido con NetBeans. Luego descubrí que mi proyecto JavaFx, que he estado desarrollando en Java 1.7, no se compilará en Java 1.8, por lo que reduje mi JDK a 1.7. Todavía no puedo hacer que funcione / compilar. Me sale este error:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

Estoy realmente atascado y agradecería mucho cualquier ayuda.

Program-Me-Rev
fuente
1
si va a renunciar, cambie también la fuente de su proyecto a 1.7, haga clic derecho en Project -> Properties -> Sources windowy configure 1.7 aquí
Jigar Joshi
Eres un salvavidas @Jigar Joshi !!!! Gracias de nuevo ***** un molino. Estoy muy agradecido. Podrías poner tu respuesta como respuesta para que pueda aceptarla. ¡Guauu! Una vez más, gracias. ¡Había estado atrapado durante tanto tiempo!
Program-Me-Rev
Si su proyecto no se compila en Java 1.8, es probable que esté haciendo algo bastante mal (por ejemplo, tiene campos estáticos para los componentes de la interfaz de usuario en el código que publicó en su otra consulta, lo cual es un error de diseño grave). Probablemente sea mejor solucionar ese problema que simplemente volver a una versión desde la que muchos usuarios actualizarán en algún momento en el futuro.
James_D
Tienes razón @James_D. Este es mi primer proyecto en java. Prácticamente aprendí a programar por mí mismo, y hasta ahora no entendía todo sobre evitar miembros estáticos, interfaces y el resto sobre polimorfismo. Mi proyecto es demasiado grande para editarlo de una vez. Planeo editarlo y pasar a la inyección de dependencia a través de Spring poco a poco a medida que termino en las otras áreas restantes. Es una lección dolorosa, pero bien aprendida.
Program-Me-Rev
1
Hay versiones de Java 1.8.0, 1.8.0_05 y 1.8.0_11, pero no existe 1.8.0.0_06.
David Conrad

Respuestas:

33

si va a renunciar, cambie también la fuente de su proyecto a 1.7,

right click on your Project -> Properties -> Sources window 

y establecer 1.7aquí

nota: sin embargo, le sugiero que averigüe por qué no funciona en 1.8

Jigar Joshi
fuente
66

Para IntelliJ14, es posible que deba cambiar la versión del código de bytes con el JDK que está utilizando (en la configuración global):

ingrese la descripción de la imagen aquí

vikasing
fuente
No funciona para mí, cambiando la versión del
código de bytes de
¿Pero la pregunta era sobre Netbeans?
Jolta
27
  1. Descarga JDK 8 .
  2. Edite su env var para JAVA_HOMEque apunte al nuevo JDK 1.8 instalado: haga clic con el botón derecho en Mi PC -> Propiedades -> Configuración avanzada del sistema -> Variables de entorno, busque JAVA_HOMEen la lista y establezca su valor en algo así:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Busque la versión anterior y edítela también en la PATHvariable.

  4. Probablemente necesitará reiniciar el sistema.

Debería estar hecho.

Thorinkor
fuente
23

Si este error ocurre al ejecutar una tarea de Gradle (o Maven), debe modificar la configuración de la herramienta de compilación para que apunte a su instalación de Java JDK 1.8 siguiendo esta ruta:

Archivo -> Configuración -> Compilación, ejecución, implementación -> Herramientas de compilación -> Gradle

Allí verifica que el proyecto de Gradle vinculado es en el que está trabajando y seleccione la JVM de Gradle (se perdió esto cuando importó el proyecto de Gradle a IntelliJ)

ingrese la descripción de la imagen aquí

Recuerde al importar un proyecto Gradle (o Maven) para configurar la JVM de destino correctamente aquí: ingrese la descripción de la imagen aquí

juliangonzalez
fuente
14

Su javac no apunta a la corrección java.

Compruebe hacia dónde apunta su javac usando el siguiente comando:

update-alternatives --config javac

Si no apunta al javac con el que desea compilar, apúntelo a "/ JAVA8_HOME / bin / javac", o al java con el que desee compilar.

Piyush Jajoo
fuente
¿por qué -1, tuve el mismo problema, y ​​eso fue porque mi javac no estaba configurado para corregir la versión de java?
Piyush Jajoo
Tenga en cuenta que la configuración puede romperse por la forma en que java y javac se seleccionan de diferentes distribuciones.
Audrius Meskauskas
9

La mayoría de las veces, este tipo de problemas ocurren debido a una versión incorrecta de Java. Asegúrese de que sus variables PATH y JAVA_HOME apunten a la versión correcta.

jprisma
fuente
Sí, esa fue mi causa también
Guy Mograbi
4

Configuración de Maven:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
it-webwork
fuente
4

Ninguna de las soluciones anteriores funcionó para mí.

Lo resolví editando .idea / compiler.xml Había copias "extra" (1) y (2) del módulo defectuoso con diferentes objetivos. Eliminé la entrada extraña y cambié los objetivos en la sección a 1.8 y funcionó.

Bill Masek
fuente
Eso me lo arregló también.
Davidmerrick
2

Para la última versión de IntelliJ IDEA Ultimate a partir del 18 de diciembre de 2017, si las sugerencias anteriores no funcionan, intente lo siguiente: Haga clic con el botón derecho en el proyecto y navegue hasta "Abrir configuración del módulo". Ábralo, luego cambie el "Nivel de idioma" en el menú desplegable.

BOBO
fuente
También asegúrese de que en Configuración del módulo en la pestaña Dependencias se elija el SDK del módulo correcto.
Rene Juuse
2

Solo haz esto . Luego invalide las cachés de IntelliJ ( File -> Invalidate Caches)

usuario3399000
fuente
1

si va a renunciar, cambie también la fuente de su proyecto a 1.7,

haga clic derecho en su Proyecto -> Propiedades -> Ventana Fuentes y configure 1.7 aquí "Jigar Joshi

También vaya a build-impl.xmly busque la propiedad excludeFromCopy="${copylibs.excludes}"y elimine esta propiedad en mi código que estaba en la línea 827, pero la he visto en otras líneas

para mí estaba tomando un código de MAC OS java 1.8 a WIN XP java 1.7

JAG NUNEZ
fuente
1

Alternativamente, verifiqué el pom.xml y cambié

<java.version>1.8</java.version>

a

<java.version>1.7</java.version>
nanopartículas
fuente
Gracias, esto me lo arregló, tan simple.
Fabii
1

Tengo el mismo problema con netbeans, pero mvn build está bien en la ventana de cmd. Para mí, el problema se resolvió después de cambiar el JDK de netbeans (en netbeans.conf como se muestra a continuación),

netbeans_jdkhome = "C: \ Archivos de programa \ Java \ jdk1.8.0_91"


Editar: Parece que se menciona aquí: error de netbeans 236364

León
fuente
1

Tuve el mismo problema en IntelliJ IDEA Community con Maven y tuve que volver a importar el proyecto haciendo clic con el botón derecho en el proyecto en la pestaña Proyecto -> Maven -> Reimportar

Csa77
fuente
0

La instalación de una versión más reciente de IDEA Community (2018.3 en lugar de 2017.x) resolvió mi problema con el mismo error pero la versión de Java: 11. Reimport no me había funcionado. Pero vale la pena intentarlo.

Laszlo Lugosi
fuente