Die Optionen für den JDT-Kern steuern das Verhalten von Kernfunktionen wie beispielsweise den Java-Compiler, das Codeformatierungsprogramm, die Unterstützung für Code und anderes Kernverhalten. Die APIs für den Zugriff auf die Optionen sind in JavaCore definiert. Auf die Optionen als Gruppe kann folgendermaßen zugegriffen werden:
Der Zugriff auf die Optionen kann auch einzeln durch die Angabe eines Zeichenfolgenamens erfolgen.
Optionen werden als Hashtabelle aller bekannten konfigurierbaren Optionen mit ihren Werten gespeichert. Konstanten der Hilfeprogramme wurden im JavaCore für jede Options-ID und den möglichen Konstantenwerten definiert.
Das folgende Codefragment stellt die Werte aller Kernoptionen mit den entsprechenden Standardwerten wieder her. Hiervon ausgenommen ist eine Option (COMPILER_PB_DEPRECATION
), die gesondert festgelegt wird:
// Aktuelle Optionen abrufen
Hashtable options = JavaCore.getDefaultOptions();
// Wert einer Option ändern
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Neue Optionen festlegen
JavaCore.setOptions(options);
Das folgende Codefragment behält die aktuellen Werte der Optionen bei und ändert lediglich eine Option
(COMPILER_PB_DEPRECATION
):
// Aktuelle Optionen abrufen
Hashtable options = JavaCore.getOptions();
// Wert einer Option ändern
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Neue Optionen festlegen
JavaCore.setOptions(options);
Die Werte von Optionen können unter Verwendung des Protokolls in IJavaProject jeweils für ein Projekt überschrieben werden.
Das folgende Codefragment ruft den Wert einer Option (COMPILER_PB_DEPRECATION
)
für ein spezifisches Projekt auf zwei unterschiedlichen Wegen ab. Der Boolesche Parameter steuert, ob in einer Abfrage nur die projektspezifischen Optionen zurückgegeben werden sollen oder ob die Optionswerte des Projektes mit den Werten in JavaCore gemischt werden sollen.
// Get the project IJavaProject project = ...; // See if the value of an option has been set in this project String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false); if (value == null) { // no specific option was set on the project ... } // Get the value of an option from this project. Use the value from // JavaCore value if none is specified for the project String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);
Die folgende Tabelle beschreibt die verfügbaren Optionen für den JDT-Kern. Die Options-ID ist in runden Klammern angegeben, der Standardwert ist in fetter Kursivschrift dargestellt.
Beschreibung | Werte |
---|---|
Lokales Variablen-Debug-Attribut generieren (COMPILER_LOCAL_VARIABLE_ATTR) | |
Dieses Attribut ermöglicht nach der Generierung die Anzeige von lokalen Variablennamen im Debugger (an Stellen, an denen Variablen mit Sicherheit zugeordnet werden). Die daraus resultierende .class-Datei ist dann größer. | GENERATE |
DO_NOT_GENERATE | |
Zeilennummern-Debug-Attribut generieren (COMPILER_LINE_NUMBER_ATTR) | |
Diese Attribut ermöglicht die Hervorhebung des Quellencodes im Debugger. Die daraus resultierende .class-Datei ist dann größer. | GENERATE |
DO_NOT_GENERATE | |
Quellen-Debug-Attribut generieren (COMPILER_SOURCE_FILE_ATTR) | |
Dieses Attribut ermöglicht nach der Generierung die Darstellung des entsprechenden Quellcodes im Debugger. | GENERATE |
DO_NOT_GENERATE | |
Nicht verwendete lokale Variablen beibehalten (COMPILER_CODEGEN_UNUSED_LOCAL) | |
Sofern der Compiler nicht angefordert wird, nicht verwendete lokale Variablen (d. h. nicht gelesen) beizubehalten, führt er eine Optimierung für diese aus und ändert dadurch potenziell das Debuggen. | PRESERVE |
OPTIMIZE_OUT | |
Ziel-Java-Plattform definieren (COMPILER_CODEGEN_TARGET_PLATFORM) | |
Aus Binärkompatibilitätsgründen können .class-Dateien mit bestimmten VM-Versionen und später gekennzeichnet werden. Beachten Sie, dass das Ziel "1.4" erfordert, dass Sie den Kompatibilitätsmodus ebenfalls auf "1.4" umschalten. | VERSION_1_1 |
VERSION_1_2 | |
VERSION_1_3 | |
VERSION_1_4 | |
Nicht adressierbaren Code berichten (COMPILER_PB_UNREACHABLE_CODE) | |
Nicht adressierbarer Code kann optional als Fehler oder Warnung berichtet bzw. einfach ignoriert werden. Die Bytecodegenerierung führt stets eine Optimierung aus. | ERROR |
WARNING | |
IGNORE | |
Ungültigen Import berichten (COMPILER_PB_INVALID_IMPORT) | |
Eine nicht auflösbare Importanweisung kann optional als Fehler oder Warnung berichtet bzw. ignoriert werden. | ERROR |
WARNING | |
IGNORE | |
Versuch des Überschreibens der Standardmethode eines Pakets berichten (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD) | |
Eine Standardmethode eines Pakets ist in einem anderen Paket nicht sichtbar und kann deshalb nicht überschrieben werden. Wird diese Option aktiviert, signalisiert der Compiler solche Szenarios entweder als Fehler oder als Warnung. | ERROR |
WARNING | |
IGNORE | |
Methoden mit Konstruktornamen berichten (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME) | |
Das Benennen einer Methode mit einem Konstruktornamen wird allgemein als schlechter Programmierstil betrachtet. Wird diese Option aktiviert, signalisiert der Compiler solche Szenarios entweder als Fehler oder als Warnung. | ERROR |
WARNING | |
IGNORE | |
Herabstufung berichten (COMPILER_PB_DEPRECATION) | |
Ist diese Option aktiviert, signalisiert der Compiler die Verwendung von herabgestufter API entweder als Fehler oder als Warnung. | ERROR |
WARNING | |
IGNORE | |
Herabstufung in herabgestuftem Code melden (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE) | |
Ist diese Option aktiviert, signalisiert der Compiler die Verwendung von herabgestufter API entweder als Fehler oder als Warnung. | ENABLED |
DISABLED | |
Verdeckte catch-Böcke berichten (COMPILER_PB_HIDDEN_CATCH_BLOCK) | |
Bei einer lokalen TRY-Anweisung können einige catch-Blöcke möglicherweise 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. |
ERROR |
WARNING | |
IGNORE | |
Nicht verwendete lokale Variablen berichten (COMPILER_PB_UNUSED_LOCAL) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Variablen aus (d. h. nicht gelesene Variablen). | ERROR |
WARNING | |
IGNORE | |
Nicht verwendete Parameter berichten (COMPILER_PB_UNUSED_PARAMETER) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Methodenparameter aus (d. h. nicht gelesene Methodenparameter). | ERROR |
WARNING | |
IGNORE | |
Nicht verwendete Parameter bei Implementierung einer abstrakten Methode melden (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT) | |
Ist diese Option aktiviert, meldet der Compiler nicht verwendete Parameter in den Implementierungen von abstrakten Methoden. | ENABLED |
DISABLED | |
Nicht verwendete Parameter beim Überschreiben einer konkreten Methode melden (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE) | |
Ist diese Option aktiviert, meldet der Compiler nicht verwendete Parameter in Methoden, die konkrete Methoden überschreiben. | ENABLED |
DISABLED | |
Nicht verwendeten Import berichten (COMPILER_PB_UNUSED_IMPORT) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht verwendete Importverweise aus. | ERROR |
WARNING | |
IGNORE | |
Nicht verwendete private Member melden(COMPILER_PB_UNUSED_PRIVATE_MEMBER) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine private Methode oder ein Feld deklariert ist, in derselben Einheit jedoch nie verwendet wird. | ERROR |
WARNING | |
IGNORE | |
Synthetische Zugriffsemulation berichten (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION) | |
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. Solcher Zugriff kann Auswirkungen auf die Leistung beinhalten. | ERROR |
WARNING | |
IGNORE | |
Nicht ausgelagertes Zeichenfolgeliteral berichten (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung für nicht ausgelagertes Zeichenfolgeliteral aus (d. h. nicht mit der Kennung //$NON-NLS-<n>$ versehen). | ERROR |
WARNING | |
IGNORE | |
Verwendung der Kennung 'assert' berichten (COMPILER_PB_ASSERT_IDENTIFIER) | |
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 1.4). | ERROR |
WARNING | |
IGNORE | |
Nicht statische Verweise auf statischen Member melden (COMPILER_PB_STATIC_ACCESS_RECEIVER) | |
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. | ERROR |
WARNING | |
IGNORE | |
Zuordnung ohne Wirkung melden (COMPILER_PB_NO_EFFECT_ASSIGNMENT) | |
Ist diese Option aktiviert, gibt der Compiler einen Fehler oder eine Warnung aus, wenn eine Zuordnung keine Auswirkung hat (z. B. "x = x"). | ERROR |
WARNING | |
IGNORE | |
Mit nicht übernommenen Methoden unkompatible Schnittstellenmethode melden (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD) | |
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. | ERROR |
WARNING | |
IGNORE | |
Verwendung von Ausdrücken "char[]" in Verkettungen von Zeichenfolgen melden (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION) | |
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 (z. B. "hello" + new char[]{'w','o','r','l','d'}), | ERROR |
WARNING | |
IGNORE | |
Quellenkompatibilitätsmodus einstellen (COMPILER_SOURCE) | |
Angabe, ob die Quelle mit Version 1.3 oder 1.4 kompatibel ist. Ab Version 1.4 ist "assert" ein für die Faktunterstützung reserviertes Schlüsselwort. Beachten Sie außerdem, dass wenn Sie zum Modus 1.4 umschalten, die VM-Zielstufe auf "1.4" gesetzt und der Kompatibilitätsmodus "1.4" sein muss. | VERSION_1_3 |
VERSION_1_4 | |
Kompatibilitätsstufe einstellen (COMPILER_COMPLIANCE) | |
Wählen Sie die Kompatibilitätsstufe des Compiler aus. Im Modus "1.3" dürfen die Quellen- und Zieleinstellungen nicht über die Stufe "1.3" hinausgehen. | VERSION_1_3 |
VERSION_1_4 | |
Höchstzahl der Probleme, die pro Kompiliereinheit gemeldet werden (COMPILER_PB_MAX_PER_UNIT) | |
Geben Sie die Höchstzahl der Probleme an, die pro Kompiliereinheit gemeldet werden (wenn das Maximum null ist, werden alle Probleme berichtet). | Ein positives Integer. Der Standardwert ist 100 |
Automatische Taskkennungen definieren (COMPILER_TASK_TAGS) | |
Wenn die Kennung nicht leer ist, gibt der Compiler immer dann eine Taskmarkierung aus, wenn er eines der entsprechenden Tags innerhalb eines Kommentars im Java-Quellcode feststellt. Generierte Tasknachrichten enthalten das Tag, reichen bis zum nächsten Zeilentrennzeichen oder Kommentarende und werden abgeschnitten. | {<tag>[,<tag>]*}. Der Standardwert ist "" |
Automatische Taskprioritäten definieren (COMPILER_TASK_PRIORITIES) | |
Parallel zu den automatischen Task-Tags definiert diese Liste die Prioritäten (hoch, normal oder niedrig) für die Taskmarkierungen, die durch den Compiler ausgegeben werden. Wenn der Standardwert angegeben ist, hat jede Taskmarkierung die Priorität "NORMAL". | {<priority>[,<priority>]*}. Der Standardwert ist "" |
Beschreibung | Werte |
---|---|
Filter für die Ressourcenkopiesteuerung angeben (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
Geben Sie Filter zum Steuern des Ressourcenkopieprozesses an. (<name> ist das Dateinamensmuster (nur Platzhalterzeichen "*" sind zulässig) oder der Name eines Ordners, der mit "/" endet). | {<name>[,<name>]*}. Der Standardwert ist "" |
Bei ungültigem Klassenpfad abbrechen (CORE_JAVA_BUILD_INVALID_CLASSPATH) | |
Weisen Sie das Erstellungsprogramm zum Abbrechen an, wenn der Klassenpfad ungültig ist. | ABORT |
IGNORE | |
Ausgabeordner bereinigen (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER) | |
Gibt an, ob das Java-Erstellungsprogramm die Ausgabeordner bereinigen darf, wenn Operationen für eine vollständige Erstellung ausgeführt werden. | CLEAN |
IGNORE |
Beschreibung | Werte |
---|---|
Projekterstellungsreihenfolge berechnen (CORE_JAVA_BUILD_ORDER) | |
Geben Sie an, ob JavaCore die Projekterstellungsreichenfolge auf Basis der Klassenpfadvoraussetzungskette zur Anwendung bringt. Wenn die Berechnung angefordert wird, wird die Standardreihenfolge der Plattform (basierend auf den Projektbenutzervorgaben) übernommen. | COMPUTE |
IGNORE | |
Standardformat der Quellencodierung angeben (CORE_ENCODING) | |
Rufen Sie das Codierformat der kompilierten Quellen ab. Diese Einstellung verfügt lediglich über Lesezugriff und ist äquivalent zu ResourcesPlugin.getEncoding(). | Jeder unterstützte Codierungsname. Der Standardwert ist "platform default" |
Unvollständigen Klassenpfad melden (CORE_INCOMPLETE_CLASSPATH) | |
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 Projekt geschlossen wurde, auf das verwiesen wird). | ERROR |
WARNING | |
Klassenpfadzyklus melden (CORE_CIRCULAR_CLASSPATH) | |
Gibt die Wertigkeit des Fehlers an, der gemeldet wird, wenn ein Projekt an einem Zyklus beteiligt ist. | ERROR |
WARNING | |
Verwendung von Ausschlussmustern für Klassenpfad aktivieren (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS) | |
Ist diese Option auf "disabled" gesetzt, kann keinem Eintrag in einem Projektklassenpfad ein Ausschlussmuster zugeordnet werden. | ENABLED |
DISABLED | |
Verwendung von mehreren Ausgabepositionen für Klassenpfad aktivieren (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS) | |
Ist diese Option auf "disabled" gesetzt, kann keinem Eintrag in einem Projektklassenpfad eine spezifisches Ausgabeposition zugeordnet werden. Dies verhindert die Verwendung von mehreren Ausgabepositionen. | ENABLED |
DISABLED |
Beschreibung | Werte |
---|---|
Neue Zeile vor linker geschweifter Klammer einfügen (FORMATTER_NEWLINE_OPENING_BRACE) | |
Mit "Einfügen" wird eine neue Zeile vor einer linken geschweiften Klammer eingefügt; andernfalls wird nichts eingefügt. | INSERT |
DO_NOT_INSERT | |
Neu Zeile innerhalb einer Steueranweisung einfügen (FORMATTER_NEWLINE_CONTROL) | |
Mit "Einfügen" wird eine neue Zeile zwischen } und nach else, catch und finally eingefügt. | INSERT |
DO_NOT_INSERT | |
Leerzeilen löschen (FORMATTER_CLEAR_BLANK_LINES) | |
Falls markiert, werden alle Leerzeilen entfernt. Ansonsten wird nur eine Leerzeile beibehalten und alle anderen werden entfernt. | CLEAR_ALL |
PRESERVE_ONE | |
Neue Zeile zwischen ELSE/IF einfügen (FORMATTER_NEWLINE_ELSE_IF) | |
Mit "Einfügen" wird ein Zeilenumbruch zwischen einem ELSE und einem IF entfernt. Ansonsten wird ELSE-IF möglichst auf derselben Zeile behalten. | INSERT |
DO_NOT_INSERT | |
Neue Zeile in leerem Block einfügen (FORMATTER_NEWLINE_EMPTY_BLOCK) | |
Mit "Einfügen" wird eine leere Zeile zwischen zusammenhängenden eingefügt, wenn auf { und }, } kein Schlüsselwort folgt. | INSERT |
DO_NOT_INSERT | |
Zeilen trennen, die die Länge überschreiten (FORMATTER_LINE_SPLIT) | |
Aktiviert das Teilen von langen Zeilen (die die konfigurierbare Länge überschreiten). Mit der Länge 0 wird das Trennen von Zeilen inaktiviert. | Ein positives Integer. Der Standardwert ist 80 |
Zuordnung komprimieren (FORMATTER_COMPACT_ASSIGNMENT) | |
Zuordnungen können asymmetrisch formatiert werden, z. B. "int x= 2;", bei "Normal" wird ein Leerzeichen vor dem Zuordnungsoperator eingefügt. | COMPACT |
NORMAL | |
Einrückungszeichen definieren (FORMATTER_TAB_CHAR) | |
Wählen Sie aus, ob mit Leerzeichen oder Tabulatoren eingerückt werden soll. | TAB |
SPACE | |
Leerzeicheneinrückungslänge definieren (FORMATTER_TAB_SIZE) | |
Wenn Sie Leerzeichen verwenden, legen Sie die Menge der Leerzeichen für jede Einrückungsmarkierung fest. | Ein positives Integer. Der Standardwert ist 4 |
Leerzeichen uin Umsetzungsausdruck einfügen (FORMATTER_SPACE_CASTEXPRESSION) | |
Wenn für diese Option die Einstellung "Insert" angegeben ist, wird in einem Umsetzungsausdruck zwischen dem Typ und dem Ausdruck ein Leerzeichen eingefügt. | INSERT |
DO_NOT_INSERT |
Beschreibung | Werte |
---|---|
Sichtbarkeitsabhängige Vervollständigung aktivieren (CODEASSIST_VISIBILITY_CHECK) | |
Wenn diese Option aktiv ist, zeigt die Fertigstellung nur sichtbare Vorgänge an (z. B. private Methoden einer Superklasse sind nicht sichtbar). | ENABLED |
DISABLED | |
Automatische Qualifizierung impliziter Member (CODEASSIST_IMPLICIT_QUALIFICATION) | |
Wenn diese Option aktiv ist, wird automatisch die Fertigstellung für implizite Feldverweise und Nachrichtenausdrücke qualifiziert. | ENABLED |
DISABLED | |
Präfixe für Feldnamen definieren (CODEASSIST_FIELD_PREFIXES) | |
Wenn die Präfixe nicht leer sind, beginnt die Fertigstellung für den Feldnamen mit einem der vorgeschlagenen Präfixe. | {<prefix>[,<prefix>]*}. Der Standardwert ist "" |
Präfixe für Namen von statischen Feldern definieren (CODEASSIST_STATIC_FIELD_PREFIXES) | |
Wenn die Präfixe nicht leer sind, beginnt die Fertigstellung für den Namen eines statischen Feldes mit einem der vorgeschlagenen Präfixe. | {<prefix>[,<prefix>]*}. Der Standardwert ist "" |
Präfixe für die Namen von lokalen Variablen definieren (CODEASSIST_LOCAL_PREFIXES) | |
Wenn die Präfixe nicht leer sind, beginnt die Fertigstellung für den Namen einer lokalen Variablen mit einem der vorgeschlagenen Präfixe. | {<prefix>[,<prefix>]*}. Der Standardwert ist "" |
Präfixe für Argumentnamen definieren (CODEASSIST_ARGUMENT_PREFIXES) | |
Wenn die Präfixe nicht leer sind, beginnt die Fertigstellung für einen Argumentnamen mit einem der vorgeschlagenen Präfixe. | {<prefix>[,<prefix>]*}. Der Standardwert ist "" |
Suffixe für Feldnamen definieren (CODEASSIST_FIELD_SUFFIXES) | |
Wenn die Suffixe nicht leer sind, endet die Fertigstellung für den Feldnamen mit einem der vorgeschlagenen Suffixe. | {<suffix>[,<suffix>]*}. Der Standardwert ist "" |
Suffixe für Namen von statischen Feldern definieren (CODEASSIST_STATIC_FIELD_SUFFIXES) | |
Wenn die Suffixe nicht leer sind, endet die Fertigstellung für den Namen eines statischen Feldes mit einem der vorgeschlagenen Suffixe. | {<suffix>[,<suffix>]*}. Der Standardwert ist "" |
Suffixe für die Namen von lokalen Variablen definieren (CODEASSIST_LOCAL_SUFFIXES) | |
Wenn die Suffixe nicht leer sind, endett die Fertigstellung für den Namen einer lokalen Variablen mit einem der vorgeschlagenen Suffixe. | {<suffix>[,<suffix>]*}. Der Standardwert ist "" |
Suffixe für Argumentnamen definieren (CODEASSIST_ARGUMENT_SUFFIXES) | |
Wenn die Suffixe nicht leer sind, endet die Fertigstellung für den Argumentnamen mit einem der vorgeschlagenen Suffixe. | {<suffix>[,<suffix>]*}. Der Standardwert ist "" |