2016-04-12 15 views
8

verwende ich Eclipse-Maven & Eclipse-Mars kompilieren Java 1.8 Fehler

Version: Mars.2 Release (4.5.2) 
Build id: 20160218-0600 

und Maven (MVN -v)

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00) 
Maven home: C:\Daten\maven 
Java version: 1.8.0_60, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.8.0_60\jre 
Default locale: de_DE, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos" 

my% JAVA_HOME% auf

C:\Program Files\Java\jdk1.8.0_60 

gesetzt ist und Mein Java ist (Java-Version)

java version "1.8.0_60" 
Java(TM) SE Runtime Environment (build 1.8.0_60-b27) 
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) 

Ich starte Eclipse mit -VM (Java JDK-Version) und ich habe externe Maven-Installation in Eclipse. nachdem ich ein Projekt importiert habe und Strang-Verhalten bekommen habe. Einige Klassen sind rot in eclispe und einige nicht. Ich überprüfe mit javap-Version und sie sind alle mit Hauptversion 52 kompiliert. Ich habe einen neuen Arbeitsbereich erstellt und das gleiche Ergebnis erhalten. sehr eigenartig. Wenn ich eine "rote" Java-Klasse mit Eclipse öffne und sie einfach speichere, wird es ok (keine Kompilierfehler).

Ich weiß wirklich nicht, was das Problem ist.

Fehler erhalte ich in Eclipse

Syntax error on token "package", assert expected 
Syntax error on token "import", throw expected 

als Eltern pom verwende ich Feder-boot-Starter-Eltern mit Version 1.3.3-RELEASE ich die Eigenschaften auch alles, was ich wie java.version wissen angegeben, maven.compiler.source/target und project build source und output encoding. versuchte auch, Maven Compiler-Plugin zu definieren. hat nicht geholfen.

Bereitstellen eines Codebeispiel

package com.test; 
public class AExample { 
    public static void main(String[] args) { 
     System.out.println(args.length); 
    } 
} 

es wie es aussieht totaly auf der Verpackung ist abhängig habe ich die Klasse in. mit einem Paket es genauso normal kompiliert mit einigen es hat die folgende erros

com.test cannot be resolved to a type AExample.java line 1 
Illegal modifier for the local class AExample; only abstract or final is permitted AExample.java line 3 
Syntax error on token "package", assert expected AExample.java line 1 
Syntax error, insert "ClassBody" to complete ClassDeclaration AExample.java line 3 
The nested type AExample cannot hide an enclosing type AExample.java line 3 

die exakt gleiche Klasse in einem anderen Paket hat diesen Fehler nicht erzeugt. nur in einem bestimmten Paket. irgendwelche Ideen, was ich überprüfen kann?

+0

Sind Sie die neue M2e-Plugin (Schiffe mit eclipse oder zumindest mit der wtp bundle), das alte verhält sich in neuen Versionen seltsam. Haben Sie Ihre Arbeitsplatzeigenschaften überprüft: Java> JRE, um Java 8 zu sein? – Andy

+0

ja sein me2 plugin und ja ich habe dafür gesorgt das 1,8 verwendet wird. in Java -> jre und Java -> Compiler in Eclipse – borehack

+0

Die Fehler sind nicht genug; Zeigen Sie den Code, der sie erzeugt. –

Antwort

5

Buried irgendwo ist wahrscheinlich eine einzige tatsächliche Kompilierung Fehler, der alle anderen verursacht. Konzentriere dich darauf. In meinem Fall hatte ich eine Datei fehlt eine }. Ich konnte die Datei finden, indem ich die gesamte Fehlerliste für Fehler überspringe, die nicht Syntax error on token oder foo cannot be resolved to a bar waren.

Aus den Kommentaren:

In meinem Fall gab es einen ungelösten Konflikt in einer anderen Datei. Scheinbar kompiliert der eclipse-mars und/oder java8 eclipse-Compiler nach einigen Kompilierungsfehlern in abhängigen Dateien keine anderen Dateien in einer sinnvollen Art und Weise, sondern spuckt scheinbar unüberbrückbare Fehler aus für die Dateien, die nicht erstellt werden können der schlechten Abhängigkeit

(Diese Antwort basiert auf Richard Sitze Kommentar, für alle anderen, die diese Frage in Zukunft findet.)

+0

Danke, das war genau mein Fall. Ich hatte eine danging Linie, die in 'ClassName ::' endete und anscheinend verursachte das den Compiler, eine Anpassung an jede Datei im Projekt zu werfen, die in 600+ Fehlern resultierte. – BeeOnRope

Verwandte Themen