Programmazione Java 7 in Eclipse
Domanda
I installato JDK 7 e Eclipse 3.6M6 . Poi, ho aggiunto JRE 7 come un nuovo ambiente di esecuzione JRE in Eclipse, e impostare il livello di conformità compilatore di Java 7. posso compilare il seguente pezzo di codice attraverso la linea di comando usando l'javac
fornito 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<>();
}
}
Ma, Eclipse fornisce i seguenti messaggi di errore.
Numero errato di argomenti per tipo HashMap; esso non può essere parametrizzato con argomenti Try.java / TryJava7 / src linea 7 Java Problema
Errore di sintassi sul gettone "<",? previsto dopo questo token Try.java / TryJava7 / src linea 7 Java Problema
Anche se ho impostato il livello di conformità del compilatore Java 7, sembra che Eclipse non capisce la sintassi Java7 ancora. E 'possibile giocare con Java 7 in Eclipse?
Di seguito è il contenuto di .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>
E, quanto segue è il contenuto del .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
Soluzione 2
http://wiki.eclipse.org/JDT_Core/Java7 , http://wiki.eclipse.org/PDE/API_Tools/Java7 e Bug 288.548 per il supporto continuo di Eclipse per Java 7. E vedere http://wiki.eclipse.org/JDT/Eclipse_Java_7_Support_%28BETA%29 per le istruzioni su come valutare Java 7 in Eclipse.
UPDATE 1: Il ramo BETA_JAVA7
è stata fusa per HEAD
e R3_7_maintenance
(Vedere la eclipse-dev archivio ).
UPDATE 2: Eclipse 3.7.1 (Indigo SR1) supporta Java 7 .
Altri suggerimenti
Come Alex ha sottolineato, Eclipse utilizza il proprio compilatore che attualmente non supporta Java 7 e, come indicato nella Progetto Piano per Eclipse progetto, la versione Helios , il supporto per Java 7 è differito e disaccoppiato dal rilascio 3.6:
( differita) Aggiungi il supporto per Java SE 7 caratteristiche . La prossima funzione rilascio di Java SE è la versione 7, che sarà probabilmente disponibile in seconda metà del 2010. Mentre il contenuto di questo comunicato sono ancora in discussione, che il rilascio è dovrebbe contenere estensioni al linguaggio Java, tra cui le annotazioni sui tipi (JSR-308), supporto modularità (JSR-294), e altre lingue minori modifiche (progetto Coin). Eclipse Java utensili includerà il supporto iniziale per la compilazione, l'editing, e il lancio applicazioni per Java 7 per coloro parti che hanno a disposizione al pubblico specifiche (solo JSR-308 in questa punto). [JDT Core JDT UI] ( 288.548 )
Nota: al fine di allineare la nostra pianificazione con il funzionario ritardata Java 7 aspetto e la causa della mancanza di specifiche disponibili al pubblico (Compresa la mancanza di un Java 7 JSR), abbiamo hanno deciso di spostare lo sviluppo lavoro ad un ramo e disaccoppiare separato dalla versione 3.6. In ciò ramifichiamo noi continueremo a sviluppare la Java 7 caratteristiche man mano che diventano accessibile al pubblico. Consegneremo aggiornamenti separati per il funzionario costruisce al fine di fornire in anticipo l'accesso a Java 7 caratteristiche.
Eclipse ha il suo compilatore Java incorporato. Quindi, se non v'è alcuna beta eclisse o qualcosa di simile che già può compilare Java 7 allora sei fuori di fortuna.
Netbeans dovrebbe funzionare.
I check-out il cosiddetto JSR 308 ramo org.eclipse.jdt.core utilizzando le seguenti informazioni CVS repository.
Connection type: pserver
User: anonymous
Host: dev.eclipse.org
Port: Default
Repository path: /cvsroot/eclipse
Module: org.eclipse.jdt.core
Tag: JSR_308 (Branch)
Poi, ho seguito le istruzioni per installare il controllato JDT in Eclipse. Successivamente, alzai gli occhi e org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/NegativeTypeAnnotationTest.java
/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
a venire con piccoli esempi esercitano JSR 308 annotazioni di tipo.
A questo punto, i supporti di filiale e genera i corrispondenti nuovi attributi nei file .class quando annotazioni sui tipi sono presenti. Ma, i processori di annotazione non sembrano al lavoro.
Java 7 di supporto (BETA) è ora disponibile in JDT. Vedere http: //thecoderlounge.blogspot. com / 2011/06 / java-7-supporto-in-eclipse-jdt-beta.html