Ungültiger Anfang des Ausdrucks für Anmerkungen

8

Ich verwende Ant, um zu bauen, ich bekomme diese Fehler:

%Vor%

Die Java-Klasse: ECMSDispatcherMDB.java

%Vor%

Die Java-Klasse: ECMSErrorHandlerMDB.java

%Vor%

Und hier ist die Ant-Builddatei build.xml :

%Vor%

Die Fehler beziehen sich auf die Anmerkungen, die ich verwende. Was muss ich tun, um diesen Ant-Build zu reparieren, um meine Klassen-Annotationen zu kompilieren?

    
rayman 03.02.2011, 07:19
quelle

4 Antworten

22

Es sieht so aus, als hätten Sie in Ihren Annotation-Arrays nachgestellte Kommas, die javac als illegal ansieht - anders als in 'richtigen' Arrays. (Es gibt einen Fehler in der Eclipse , der diese nicht als solche meldet.)

>

Entfernen Sie die abschließenden Kommas, z. B .:

%Vor%     
martin clayton 03.02.2011, 09:43
quelle
0

Definieren Sie eine andere Quellenstufe für javac ?

Da empfohlen wird, immer das Attribut source für die Aufgabe javac anzugeben, haben Sie möglicherweise eine veraltete Version angegeben.

Wenn Ihr Ant-Skript z. B. mit der Quellenebene 1.4 kompiliert, haben Sie keine Generika oder Anmerkungen.

Suchen Sie in Ihrem build.xml :

nach etwas ähnlichem %Vor%

BEARBEITEN: Eine andere Möglichkeit, die Quellstufe für Ant festzulegen, wäre die Verwendung der Systemeigenschaft ant.build.javac.source , aber ich bezweifle, dass dies der Fall ist.

    
Daniel Rikowski 03.02.2011 08:11
quelle
0

Dies ist kein Ant-Problem per se . Es ist eher ein Syntaxfehler in einer oder mehreren der Java-Dateien, die Sie versuchen zu kompilieren.

Wenn Sie den Java-Quellcode gepostet haben, sollten wir in der Lage sein, genauer zu sein.

Ich weiß nicht, was das Problem ist, aber ich kann Ihnen sagen, dass Ant Java nicht selbst kompiliert. Stattdessen verwendet es den Java-Compiler (aus dem JDK, den es findet), um das Java zu kompilieren.

Wenn Sie also beim Kompilieren über Ant Kompilierungsfehler bekommen, aber nicht, wenn Sie einen anderen Weg kompilieren, gibt es etwas Signifikantes, was die Art und Weise betrifft, wie der Java-Compiler ausgeführt wird:

  • Möglicherweise verwenden Sie einen anderen Compiler (von einem anderen JDK).
  • Sie könnten bewirken, dass der Compiler mit einem anderen Klassenpfad ausgeführt wird.
  • Sie könnten bewirken, dass der Compiler mit einer anderen Quellversion ausgeführt wird.

Der zweite Datenpunkt ist der tatsächliche Fehler, den Sie erhalten. Sie sind Syntaxfehler und keine semantischen Fehler. Wenn das Problem der Klassenpfad zum Erstellen war, dann würden Sie semantische Fehler erwarten, die (zum Beispiel) sagen, dass bestimmte Annotationsnamen nicht bekannt waren. Stattdessen erhalten Sie einen Syntaxfehler, der darauf hindeutet, dass der Compiler die Anmerkungen überhaupt nicht versteht. Das deutet darauf hin, dass der Compiler Java 1.4 (oder früher) Code erwartet.

Also meine Vorschläge sind:

  • Überprüfen Sie, ob Ant für die Verwendung eines aktuellen JDK konfiguriert ist. Überprüfen Sie Ihre Ant-Installations- und Umgebungsvariablen wie in der Ant-Dokumentation beschrieben.
  • Überprüfen Sie, ob Sie die Ebene des Compilers source in der Datei ant build.xml richtig eingestellt haben. Lesen Sie die Ant-Dokumentation für die <javac> -Aufgabe und schauen Sie sich den Sun javac-Handbucheintrag an, um sicherzustellen, dass Sie es richtig machen.
Stephen C 03.02.2011 07:38
quelle
0

Dies deutet stark auf die Java-Kompilierungsebene hin, @DR hat sie bereits beantwortet. Probieren Sie zwei Dinge aus:

  1. Laden Sie die neueste ANT herunter, fügen Sie $ANT_HOME/bin it dem Systempfad hinzu, wobei $ANT_HOME das Verzeichnis ist, in dem sich ANT befindet (unter dem bin). Entfernen Sie jeglichen Verweis auf andere ANT.
  2. Öffnen Sie Ihre Datei build.xml, sehen Sie sich den Block an, in dem die Aufgabe javac (Kompilierung) hinzugefügt wurde. Stellen Sie sicher, dass es so aussieht

    %Vor%
Nishant 03.02.2011 09:25
quelle

Tags und Links