Java-Compiler

Auf dieser Benutzervorgabenseite können verschiedene Einstellungen für Kompilierung, Erstellung und Prüfung von Java-Quellcode konfiguriert werden.

Die Benutzervorgaben für den Java-Compiler sind in die folgenden Abschnitte unterteilt:

Allgemein

JDK-Kompatibilität

Option

Beschreibung

Standardwert

Compiler-Konformitätsstufe

Gibt die Kompatibilitätsstufe des Compilers an.

1.4

Standardeinstellungen für Konformität verwenden

Ist diese Option aktiviert, werden die Standardeinstellungen für die Kompatibilitätsstufe des Compilers angewendet.

Aktiviert

Kompatibilität der generierten Klassendateien

Gibt die Kompatibilität der generierten Klassendateien an.

1.2

Quellenkompatibilität

Gibt die Kompatibilität des akzeptierten Quellcodes an.

1.3

Kennungen mit dem Namen 'assert' nicht zulassen

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn 'assert' als Kennung verwendet wird (reserviertes Schlüsselwort in J2SE 1.4).

Warnung

Kennungen mit dem Namen 'enum' nicht zulassen

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn 'enum' als Kennung verwendet wird (reserviertes Schlüsselwort in J2SE 5.0).

Warnung

Generierung von Klassendateien

Variablenattribute zu generierten Klassendateien hinzufügen

Ist diese Option aktiviert, werden der Klassendatei Variablenattribute hinzugefügt. Hierbei wird die Anzeige von lokalen Variablennamen im Debugger (an Stellen, an denen Variablen mit Sicherheit zugeordnet werden) aktiviert. Die daraus resultierende .class-Datei ist dann größer.

Aktiviert

Zeilennummernattribute zu generierten Klassendateien hinzufügen

Ist diese Option aktiviert, werden der Klassendatei Zeilennummerninformationen hinzugefügt. Hierbei wird die Hervorhebung des Quellencodes im Debugger aktiviert.

Aktiviert

Quellendateiname zu generierter Klassendatei hinzufügen

Ist diese Option aktiviert, wird der Klassendatei ein Quellendateiname hinzugefügt. Hierdurch wird die Darstellung des entsprechenden Quellcodes im Debugger aktiviert.

Aktiviert

Nicht verwendete lokale Variablen beibehalten

Ist diese Option aktiviert, werden nicht verwendete lokale Variablen (d. h. nicht gelesene) nicht aus der Klassendatei entfernt. Das Entfernen kann den Debug-Vorgang potenziell verändern.

Aktiviert

finally-Blöcke integrieren

Ist diese Option aktiviert, werden finally-Blöcke in die generierten Klassendateien integriert. Dies wirkt sich positiv auf die Leistung aus, es kann jedoch zu größeren Klassendateien führen.

Inaktiviert

Erstellung

Allgemein

Option

Beschreibung

Standardwert

Maximale Anzahl von gemeldeten Problemen pro Kompiliereinheit

Gibt an, wie viele Probleme pro Kompiliereinheit gemeldet werden sollen.

100

Verwendung von Ausschlussmustern in Quellenordnern aktivieren

Ist diese Option inaktiviert, kann keinem Eintrag in einem Projektklassenpfad ein Ausschlussmuster zugeordnet werden.

Aktiviert

Mehrfachausgabepositionen für Quellenordner aktivieren

Ist diese Option inaktiviert, kann keinem Eintrag in einem Projektklassenpfad eine spezifische Ausgabeposition zugeordnet werden. Auf diese Weise wird die Verwendung mehrerer Ausgabepositionen verhindert.

Aktiviert

Erstellungspfadprobleme

Erstellung bei Erstellungspfadfehlern abbrechen

Mit dieser Umschaltfunktion können Sie das Erstellungsprogramm anweisen, die Erstellung bei einem ungültigen Klassenpfad abzubrechen.

Aktiviert

Unvollständiger Erstellungspfad

Gibt die Wertigkeit des Fehlers an, der gemeldet wird, wenn ein Eintrag im Klassenpfad nicht vorhanden, nicht gültig oder nicht sichtbar ist (z. B weil ein Verweisprojekt geschlossen wurde).

Fehler

Rückwirkende Abhängigkeiten

Gibt die Wertigkeit des Fehlers an, der gemeldet wird, wenn ein Projekt an einem Zyklus beteiligt ist.

Fehler

Inkompatible erforderliche Binärobjekte

Gibt die Wertigkeit des Fehlers an, der gemeldet wird, wenn ein Projekt inkompatible Binörobjekte erfordert.

Ignorieren

Ausgabeordner

Doppelte Ressourcen

Gibt die Wertigkeit des Fehlers an, der gemeldet wird, wenn mehr als ein Vorkommen einer Ressource in die Ausgabeposition kopiert werden soll.

Warnung

Ausgabeordner beim Bereinigen von Projekten ebenfalls bereinigen

Gibt an, ob das Java-Erstellungsprogramm die Ausgabeordner bereinigen darf, wenn Operationen für eine vollständige Erstellung ausgeführt werden.

Aktiviert

Gefilterte Ressourcen

Eine durch Kommata untergliederte Liste der Dateimuster, die nicht in den Ausgabeordner kopiert werden. 

''

Fehler/Warnungen

Codedarstellung

Option

Beschreibung

Standardwert

Nicht statischer Zugriff auf statisches Member

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn in einem Ausdrucksempfänger auf ein statisches Feld oder eine Methode zugegriffen wird. Ein Verweis auf ein statisches Member sollte durch einen Typnamen qualifiziert werden.

Warnung

Indirekter Zugriff auf statisches Member

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn indirekt auf ein statisches Feld oder eine Methode zugegriffen wird. Ein statisches Feld einer Schnittstelle ist mit einem deklarierenden Typnamen zu qualifizieren.

Warnung

Unqualifizierter Zugriff auf Exemplarfeld

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er einen nicht qualifizierten Zugriff auf ein Feld feststellt (z. B. 'this' fehlt).

Ignorieren

Nicht dokumentierter leerer Block

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn die Anweisung eines leeren Blocks ohne erklärenden Kommentar gefunden wird.

Ignorieren

Zugriff auf ein nicht zugriffsfähiges Member eines einschließenden Typs

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er den Zugriff auf ein nicht zugriffsfähiges Member eines einschließenden Typs emuliert. Solche Zugriffe können Auswirkungen auf die Leistung beinhalten.

Ignorieren

Methoden mit einem Konstruktornamen

Das Benennen einer Methode mit einem Konstruktornamen wird allgemein als schlechter Programmierstil betrachtet. Wird diese Option aktiviert, signalisiert der Compiler ein solches Szenario entweder als Fehler oder als Warnung.

Warnung

Verwendung von nicht ausgelagerten Zeichenfolgen

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht ausgelagertes Zeichenfolgeliteral aus (d. h. nicht mit dem Tag //$NON-NLS-<n>$ versehen). 

Ignorieren

Potentielle Programmierungsprobleme

Serialisierbare Klasse ohne serialVersionUID

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein 'java.io.Serializable' implementierender Typ kein 'serialVersionUID'-Feld enthält.

Warnung

Zuordnung ist wirkungslos (z. B. 'x = x')

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Zuordnung wirkungslos ist (z. B. 'x = x').

Warnung

Mögliche zufällige Boolesche Zuordnung (z. B. 'if (a = b)')

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine mögliche zufällige Boolesche Zuordnung gefunden wird (z. B. 'if (a = b)').

Warnung

Der 'finally'-Block wird nicht normal beendet.

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine 'finally'-Anweisung nicht normal beendet wird (z. B. eine return-Anweisung enthält).

Warnung

Leere Anweisung

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine leere Anweisung gefunden wird (z. B. ein nicht erforderliches Semikolon).

Ignorieren

Verwendung eines Zeichenbereichs in Verkettung von Zeichenfolgen

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn in Verkettungen von Zeichenfolgen ein Ausdruck 'char[]' verwendet wird,

"hello" + new char[]{"w','o','r','l','d'}

Warnung

Verdeckte CATCH-Blöcke

Bei einer lokalen TRY-Anweisung können CATCH-Blöcke andere verdecken, z. B.

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für verdeckte CATCH-Blöcke entsprechend der überprüften Ausnahmebedingungen aus.

Warnung

Namensspiegelung und Konflikte

Eine Felddeklaration verdeckt ein anderes Feld oder eine Variable.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Felddeklaration ein anderes übernommenes Feld verdeckt.

Ignorieren

Eine lokale Variablendeklaration verdeckt ein anderes Feld oder eine andere Variable.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variablendeklaration ein anderes Feld oder eine Variable verdeckt.

Ignorieren

Parameter für Konstruktor oder Setter-Methode einschließen

Ist diese Option aktiviert, gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn ein Konstruktor oder eine Setter-Methode ein anderes Feld oder eine Variable verdecken.

Inaktiviert

Ein Typparameter verdeckt einen anderen Typ.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn z. B. ein Typparameter einer untergeordneten Klasse einen äußeren Typ verdeckt.

Warnung

Methoden überschrieben, jedoch kein Paket sichtbar

Eine Standardmethode eines Pakets ist in einem anderen Paket nicht sichtbar und kann deshalb nicht überschrieben werden. Wird diese Option aktiviert, signalisiert der Compiler ein solches Szenario entweder als Fehler oder als Warnung.

Warnung

Konflikt zwischen Schnittstellenmethode und geschützter Methode 'Object'

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine Schnittstelle eine Methode definiert, die mit der Methode eines nicht übernommenen Objekts nicht kompatibel ist. Solange dieser Konflikt nicht aufgelöst ist, kann eine solche Schnittstelle nicht implementiert werden, z. B.

interface I {
   int clone();
}

Warnung

Namensspiegelung und Konflikte

Veraltete API

Ist diese Option aktiviert, signalisiert der Compiler die Verwendung von herabgestufter API entweder als Fehler oder als Warnung.

Warnung

Verwendung von herabgestufter API in veraltetem Code melden

Ist diese Option aktiviert, signalisiert der Compiler die Verwendung einer herabgestuften API innerhalb von veraltetem Code. Die Wertigkeit des Fehlers wird mit der Option 'Herabgestufte API' gesteuert.

Inaktiviert

Überschreibende oder implementierende veraltete Methode melden

Ist diese Option aktiviert, meldet der Compiler das Überschreiben oder Implementieren einer veralteten Methode. Die Wertigkeit des Fehlers wird mit der Option 'Herabgestufte API' gesteuert.

Inaktiviert

Nicht zulässiger Verweis (Zugriffsregeln)

Ist diese Option aktiviert, meldet der Compiler einen nicht zulässigen Verweis, der in den Zugriffsregeln angegeben ist.

Fehler

Nicht empfohlener Verweis (Zugriffsregeln)

Ist diese Option aktiviert, meldet der Compiler einen nicht empfohlenen Verweis, der in den Zugriffsregeln angegeben ist.

Warnung

Nicht erforderlicher Code

Die lokale Variable wird nie gelesen.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine lokale Variable deklariert ist, jedoch nie innerhalb ihres Geltungsbereichs verwendet wird.

Warnung

Der Parameter wird nie gelesen.

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn ein Parameter deklariert ist, jedoch nie innerhalb ihres Geltungsbereichs verwendet wird.

Ignorieren

Überschreibende und implementierende Methoden prüfen

Ist diese Option aktiviert, gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn ein Parameter deklariert ist, jedoch nie innerhalb seines Geltungsbereichs in überschreibenden oder implementierenden Methoden verwendet wird.

Inaktiviert

Nicht verwendete Importe

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Importverweise aus.

Warnung

Nicht verwendete lokale oder private Member

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn ein lokales oder privates Member deklariert ist, in derselben Einheit jedoch nie verwendet wird.

Warnung

Nicht erforderliche 'else'-Anweisung

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche 'else'-Anweisung gefunden wird (z. B. if (Bedingung) return; else doSomething();).

Ignorieren

Nicht erforderliche Umsetzung von Operation 'instanceof'

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche Umsetzung der Operation 'instanceof' gefunden wird (z. B. if (Object instanceof Object) return;).

Ignorieren

Nicht erforderliche Deklaration einer ausgelösten geprüften Ausnahmebedingung:

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche Deklaration einer ausgelösten Ausnahmebedingung gefunden wird.

Ignorieren

Überschreibende und implementierende Methoden prüfen

Ist diese Option aktiviert, gibt der Compiler zusätzlich einen Fehler oder eine Warnung aus, wenn eine nicht erforderliche Deklaration einer ausgelösten Ausnahmebedingung in einer überschreibenden oder implementierenden Methode gefunden wird.

Inaktiviert

J2SE 5.0-Optionen

Nicht überprüfte generische Typoperation

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine nicht überprüfte generische Typoperation gefunden wird.

Warnung

Generischer, mit finaler Typenbindung deklarierter Typparameter

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein generischer, mit finaler Typenbindung deklarierter Typparameter gefunden wird.

Warnung

Ungenaue Typübereinstimmung für Vararg-Argumente

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn eine ungenaue Typübereinstimmung für Vararg-Argumente gefunden wird.

Warnung

Umsetzungskonventionen (boxing und unboxing)

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn Umsetzungskonventionen (boxing und unboxing) gefunden werden. 'Autoboxing' kann die Leistung nachteilig beeinflussen.

Ignorieren

Anmerkung des Typs '@Override' fehlt

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn er eine Methode feststellt, die eine andere implementierte Methode überschreibt, und die Anmerkung des Typs '@Override' fehlt.

Ignorieren

Anmerkung des Typs '@Deprecated' fehlt

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er einen veralteten Typ ohne die zusätzliche Anmerkung des Typs '@Deprecated' feststellt.

Ignorieren

Anmerkung wird als Superschnittstelle verwendet

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn er einen Typ feststellt, der eine Anmerkung implementiert. Obwohl möglich, wird dies als schlechte Praktik betrachtet.

Warnung

Nicht alle Aufzählungskonstanten bei 'switch' abgedeckt

Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine 'Switch'-Anweisung gefunden wird, die nicht eine case-Anweisung für jede Aufzählungskonstante der betreffenden Aufzählung enthält.

Ignorieren

Nicht verarbeitete Warnungstoken in '@SuppressWarnings'

Ist diese Option aktiviert, gibt der Compiler immer dann einen Fehler oder eine Warnung aus, wenn ein nicht verarbeiteter Warnungstoken in einer Anmerkung des Typs '@SuppressWarnings' gefunden wird.

Warnung

Anmerkungen des Typs '@SuppressWarnings' aktivieren

Ist diese Option aktiviert, verarbeitet der Compiler Anmerkungen des Typs '@SuppressWarnings'.

Aktiviert

Verwandte Konzepte

Java-Erstellungsprogramm

Verwandte Tasks

Java-Programm erstellen
Mit Erstellungspfaden arbeiten
Mit JREs arbeiten

Verwandte Referenz

Benutzervorgaben für Klassenpfadvariablen
Java-Erstellungspfad - Eigenschaften