used the studio specified programacion not jre installed does compliance compiler change but java eclipse

java - studio - the compiler compliance specified is 1.6 but a jre 1.8 is used



¿Cómo puedo obtener eclipse para usar una versión de compilador diferente para Java? (5)

Parece que esto debería ser una tarea simple, con las opciones en el menú Preferencias para diferentes JRE y la capacidad de establecer diferentes compiladores y rutas de compilación por proyecto. Sin embargo, también parece simplemente no funcionar.

Por ejemplo, tengo mi JAVA_HOME configurado como jre para Java 1.6. Aún no está claro cómo lo usa Eclipse, pero parece que no está tomando esto en cuenta y no toma las anulaciones del proyecto. También instalé Java 1.5 y agregué un JRE para esto en eclipse en la sección Java-> JREs instalados.

En mi proyecto, establecí el nivel de cumplimiento del compilador en 1.5. En la ruta de compilación para el proyecto, he agregado la Biblioteca del sistema para Java 1.5 JRE. Sin embargo, recibo errores de compilación para una clase que implementa PreparedStatement para no implementar métodos abstractos que solo existen en Java 1.6 PreparedStatement. Específicamente, los métodos

setAsciiStream(int, InputStream, long) and setAsciiStream(int, InputStream)

Curiosamente, funcionó cuando lo compilamos contra Java 1.4, para el cual fue originalmente escrito. Agregamos los JRE para Java 1.4 y hicimos referencia a esa biblioteca de sistema en el proyecto, y establecimos el nivel de compilador del proyecto en 1.4, y funciona bien. Pero cuando hago los mismos cambios para tratar de apuntar a Java 1.5, en su lugar usa 1.6.

¿Alguna idea de por qué?


Desde la barra de menú: Proyecto -> Propiedades -> Compilador Java

Habilitar configuraciones específicas del proyecto (marcadas) Desmarque "usar Cumplimiento del entorno de ejecución" .... Seleccione el "nivel de cumplimiento del compilador" deseado

Eso le permitirá compilar el código "1.5" con un "JDK 1.6".

Si desea utilizar un 1.5 JDK para producir un código compatible con "1.5", instale un 1.5 JDK adecuado y diga a eclipse dónde está instalado a través de:

Ventana -> preferencias -> JRE instalados

Y luego regrese a su proyecto

Proyecto -> propiedades -> Java Build Path -> libraries

elimine las 1.6 bibliotecas del sistema y agregue la biblioteca ... -> JRE System LIbrary -> Alternate JRE -> The JRE que desea.

Verifique que el JRE correcto esté en la ruta de compilación del proyecto, guarde todo y ¡disfrútelo!


Eclipse usa su propio compilador interno que puede compilar varias versiones de Java.

Ayuda de Eclipse> Guía del usuario de desarrollo Java> Conceptos> Java Builder

El constructor de Java crea programas Java utilizando su propio compilador (el compilador Eclipse para Java) que implementa la especificación del lenguaje Java.

Para la versión Eclipse Mars.1 (4.5.1), puede apuntar de 1.3 a 1.8 inclusive.

Cuando configura un proyecto:

[project-name] > Properties > Java Compiler > Compiler compliance level

Esto configura el compilador de Eclipse Java para compilar el código a la versión de Java especificada, generalmente 1.8 en la actualidad.

Las variables de entorno de host, por ejemplo, JAVA_HOME, etc., no se utilizan.

El compilador Oracle / Sun JDK no se usa.


En primer lugar, ¿está configurando su JRE deseado o su JDK deseado?

Incluso si su Eclipse está configurado correctamente, es posible que exista una extraña configuración específica del proyecto en alguna parte. Puede abrir un menú contextual en un proyecto Java determinado en el Explorador de proyectos y seleccionar Propiedades> Compilador Java para verificarlo.

Si nada de eso ayuda, déjeme un comentario y echaré otro vistazo.


Otro enfoque para configurar el compilador JDK 1.8 con Maven es usar este complemento:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <verbose>true</verbose> <fork>true</fork> <executable>C:/Program Files/Java/jdk1.8.0_102/bin/javac</executable> <source>1.8</source> <target>1.8</target> </configuration> </plugin>


Solo para aclarar, ¿tiene JAVA_HOME establecido como una variable de sistema o configurado en variables Eclipse classpath? Estoy bastante seguro (¡pero no del todo seguro!) De que la variable del sistema es utilizada por el compilador de línea de comando (y Ant), pero que Eclipse modifica este accroding al JDK utilizado