Pregunta

lo instalé JDK 7 y Eclipse 3.6m6. Luego, agregué JRE 7 como un nuevo entorno de ejecución JRE en Eclipse, y establecí el nivel de cumplimiento del compilador en Java 7. Puedo compilar la siguiente pieza de código a través de la línea de comandos utilizando la javac Eso viene con JDK 7.

import java.util.HashMap;
import java.util.Map;

public class Try {

    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
    }
}

Pero, Eclipse da los siguientes mensajes de error.

Número incorrecto de argumentos para el tipo hashmap; No se puede parametrizar con argumentos try.java /tryJava7 /src line 7 Java Problema

Error de sintaxis en el token "<" ,? esperado después de este token ty.java /tryJava7 /SRC Line 7 Java Problema

Aunque he establecido el nivel de cumplimiento del compilador en Java 7, parece que Eclipse aún no entiende la sintaxis Java7. ¿Es posible jugar con Java 7 en Eclipse?

El siguiente es el contenido de .classpath.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
  <classpathentry kind="output" path="bin"/>
</classpath>

Y lo siguiente es el contenido de .settings/org.eclipse.jdt.core.prefs.

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
¿Fue útil?

Solución 2

Ver http://wiki.eclipse.org/jdt_core/java7, http://wiki.eclipse.org/pde/api_tools/java7 y Error 288548 Para el apoyo continuo de Eclipse para Java 7. y ver http://wiki.eclipse.org/jdt/eclipse_java_7_support_%28beta%29 Para instrucciones sobre cómo evaluar Java 7 en Eclipse.

Actualización 1: los BETA_JAVA7 la rama se ha fusionado con HEAD y R3_7_maintenance (Ver el Archivo de Eclipse-Dev).

Actualización 2: Eclipse 3.7.1 (Indigo SR1) admite Java 7.

Otros consejos

Como Alex señaló, Eclipse usa su propio compilador que actualmente no es compatible con Java 7 y, como se señaló en el Plan de proyecto para el proyecto Eclipse, versión helios, el soporte para Java 7 se difiere y desacopla de la versión 3.6:

  • ((new) diferido) Agregar soporte para las características de Java SE 7. El próximo lanzamiento de Java SE es la versión 7, que probablemente estará disponible en la segunda mitad de 2010. Si bien el contenido de este lanzamiento aún está en discusión, se espera que ese lanzamiento contenga extensiones al lenguaje Java, incluidas las anotaciones en tipos de tipos (JSR-308), soporte de modularidad (JSR-294) y otros cambios de lenguaje menores (Proyecto Coin). Eclipse Java Tooling incluirá soporte inicial para compilar, editar y lanzar aplicaciones para Java 7 para aquellas piezas que tienen especificaciones disponibles públicamente (solo JSR-308 en este momento). [JDT Core, JDT UI] (288548)

    NOTA: Para alinear nuestro cronograma con la retrasada aparición oficial de Java 7 y debido a la falta de especificaciones disponibles públicamente (incluida la falta de un Java 7 JSR), hemos decidido trasladar el trabajo de desarrollo a una rama separada y desacoplarlo de la versión 3.6 . En esa rama continuaremos desarrollando las características de Java 7 a medida que se vuelvan accesibles públicamente. Brindaremos actualizaciones separadas para las compilaciones oficiales para proporcionar acceso temprano a las funciones de Java 7.

Eclipse tiene su propio compilador Java integrado. Entonces, si no hay Eclipse Beta o algo así que ya pueda compilar Java 7, entonces no tienes suerte.

NetBeans debería funcionar.

Vuelvo a ver la llamada rama JSR 308 de org.eclipse.jdt.core utilizando la siguiente información del repositorio CVS.

Connection type: pserver
User: anonymous
Host: dev.eclipse.org
Port: Default
Repository path: /cvsroot/eclipse
Module: org.eclipse.jdt.core
Tag: JSR_308 (Branch)

Luego, seguí las instrucciones para instalar el JDT revisado en Eclipse. Posteriormente, miré hacia arriba org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/NegativeTypeAnnotationTest.java y/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java Para crear pequeños ejemplos que ejercen anotaciones de tipo JSR 308.

En este punto, la rama admite y genera los nuevos atributos correspondientes en los archivos .class cuando están presentes las anotaciones en los tipos. Pero, los procesadores de anotación no parecen funcionar.

Java 7 Support (beta) ahora está disponible en JDT. Ver http://thecoderlounge.blogspot.com/2011/06/java-7-support-in-eclipse-jdt-beta.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top