Kompilator Java

Na tej stronie preferencji można konfigurować różne ustawienia związane z kompilowaniem, budowaniem oraz sprawdzaniem kodu źródłowego Java.

Preferencje kompilatora Java są podzielone na następujące sekcje:

Ogólne

Zgodność pakietu JDK

Opcja

Opis

Domyślnie

Poziom zgodności kompilatora

Określa poziom zgodności kompilatora.

1.4

Użyj domyślnych ustawień zgodności

Po włączeniu tej opcji stosowane są domyślne ustawienia poziomu zgodności kompilatora.

Włączone

Zgodność wygenerowanych plików .class

Określa zgodność wygenerowanych plików .class.

1.2

Zgodność źródła

Określa zgodność akceptowanego kodu źródłowego.

1.3

Odrzuć identyfikatory o nazwie assert

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku użycia słowa assert (zastrzeżonego słowa kluczowego środowiska J2SE 1.4) jako identyfikatora.

Ostrzeżenie

Nie zezwalaj na identyfikatory o nazwie enum

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku użycia słowa enum (zastrzeżonego słowa kluczowego środowiska J2SE 5.0) jako identyfikatora.

Ostrzeżenie

Generowanie pliku klasy

Dodaj atrybuty zmiennej do wygenerowanych plików klas

Po włączeniu tej opcji do pliku klasy są dodawane atrybuty zmiennej. Umożliwia to wyświetlanie nazw zmiennych lokalnych w debugerze (w miejscach ostatecznego przypisania wartości do zmiennych). Otrzymany w ten sposób plik .class jest większy.

Włączone

Dodaj atrybuty numerów wierszy do wygenerowanych plików klas

Po włączeniu tej opcji do pliku klasy są dodawane informacje o numerach wierszy. Umożliwia to wyróżnienie kodu źródłowego w debugerze.

Włączone

Dodaj nazwę pliku źródłowego do wygenerowanego pliku klasy

Po włączeniu tej opcji do pliku klasy jest dodawana nazwa pliku źródłowego. Umożliwia to debugerowi prezentację odpowiedniego kodu źródłowego.

Włączone

Zachowaj nieużywane zmienne lokalne

Po włączeniu tej opcji nieużywane (tj. nigdy nieodczytywane) zmienne lokalne nie są usuwane z pliku klasy. Ich usunięcie może spowodować zmianę procesu debugowania.

Włączone

Wstaw bloki finally

Jeśli ta opcja jest włączona, do wygenerowanych plików klas wstawiane są bloki finally. Poprawia to wydajność, lecz może powodować zwiększenie wielkości plików klas.

Wyłączone

Budowanie

Ogólne

Opcja

Opis

Domyślnie

Maksymalna liczba zgłaszanych problemów na jednostkę kompilacji

Określa liczbę problemów zgłaszanych dla jednostki kompilacji.

100

Możliwość użycia wzorców wykluczeń w folderach źródłowych

Po wyłączeniu tej opcji żadnej pozycji na ścieżce klasy projektu nie można powiązać ze wzorcem wykluczeń.

Włączone

Możliwość użycia wielu położeń wyjściowych dla folderów źródłowych

Po wyłączeniu tej opcji żadnej pozycji w ścieżce klasy projektu nie można powiązać z określonym położeniem wyjściowym, co uniemożliwia stosowanie wielu położeń wyjściowych.

Włączone

Problemy ze ścieżką budowania

Przerwij budowanie, jeśli wystąpią błędy ścieżki budowania

Umożliwia przerwanie pracy programu budującego, gdy ścieżka budowania jest niepoprawna.

Włączone

Niepełna ścieżka budowania

Umożliwia wskazanie istotności zgłoszonego problemu, jeśli pozycja w ścieżce klasy nie istnieje lub jest niedozwolona albo niewidoczna (np. przywoływany projekt jest zamknięty).

Błąd

Zależności cykliczne

Umożliwia wskazanie istotności zgłoszonego problemu, gdy projekt stanowi element cyklu.

Błąd

Niezgodne wymagane dane binarne

Wskazuje istotność zgłoszonego problemu, gdy projekt wymaga niezgodnych danych binarnych.

Ignoruj

Folder wyjściowy

Zduplikowane zasoby

Umożliwia wskazanie istotności zgłoszonego problemu, gdy więcej niż jedno wystąpienie zasobu ma być skopiowane do położenia wyjściowego.

Ostrzeżenie

Opróżnij foldery wyjściowe podczas czyszczenia projektów

Umożliwia wskazanie, czy program budujący Java może wyczyścić foldery wyjściowe, gdy wykonuje operację budowania pełnego.

Włączone

Filtrowane zasoby

Oddzielana przecinkami lista wzorców plików, które nie są kopiowane do folderu wyjściowego. 

''

Błędy/ostrzeżenia

Styl kodu

Opcja

Opis

Domyślnie

Niestatyczny dostęp do składowej static

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku dostępu do pola lub metody static za pomocą odbiornika wyrażenia. Odwołanie do składowej static powinno być kwalifikowane nazwą typu.

Ostrzeżenie

Pośredni dostęp do składowej static

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku pośredniego dostępu do pola lub metody static. Pole static interfejsu powinno być kwalifikowane za pomocą nazwy typu deklarującego.

Ostrzeżenie

Niekwalifikowany dostęp do pola instancji

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku niekwalifikowanego odwołania do pola (np. brak operatora this).

Ignoruj

Nieudokumentowany pusty blok

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania pustej instrukcji blokowej bez wyjaśniającego komentarza.

Ignoruj

Dostęp do niedostępnej składowej typu obejmującego

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku emulacji dostępu do niedostępnej składowej typu obejmującego. Taki dostęp może wpływać na wydajność.

Ignoruj

Metody o nazwie konstruktora

Nadawanie metodzie nazwy konstruktora jest uznawane za zły styl programowania. Po włączeniu tej opcji kompilator zasygnalizuje taką sytuację jako błąd lub ostrzeżenie.

Ostrzeżenie

Użycie nieeksternalizowanych łańcuchów

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieeksternalizowanego literału łańcuchowego (tj. niezawierającego znacznika //$NON-NLS-<n>$).  

Ignoruj

Potencjalne problemy programistyczne

Klasa przekształcalna do postaci szeregowej bez identyfikatora serialVersionUID

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, gdy typ implementujący interfejs java.io.Serializable nie zawiera pola serialVersionUID.

Ostrzeżenie

Bezskuteczne przypisanie (na przykład: x = x)

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku bezskutecznego przypisania (np. x = x).

Ostrzeżenie

Możliwe przypadkowe przypisanie boolowskie (na przykład: if (a = b))

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania potencjalnie przypadkowego przypisania boolowskiego (np. if (a = b)).

Ostrzeżenie

Nieprawidłowe zakończenie bloku finally

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieprawidłowego zakończenia instrukcji finally (np. z instrukcją return).

Ostrzeżenie

Pusta instrukcja

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania pustej instrukcji (np. nadmiarowego średnika).

Ignoruj

Użycie tablicy char w konkatenacji łańcucha

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku użycia wyrażenia char[] w konkatenacji łańcucha, np.

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

Ostrzeżenie

Ukryte bloki catch

Niektóre bloki catch mogą ukrywać inne (lokalnie względem instrukcji try), na przykład:

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

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku ukrytych bloków catch odpowiadających wyjątkom kontrolowanym.

Ostrzeżenie

Przesłanianie i konflikty nazw

Deklaracja pola ukrywa inne pole lub inną zmienną

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli deklaracja pola ukrywa inne odziedziczone pole.

Ignoruj

Deklaracja zmiennej lokalnej ukrywa inne pole lub inną zmienną

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli deklaracja zmiennej lokalnej ukrywa inne pole lub inną zmienną.

Ignoruj

Uwzględnij parametry konstruktora lub metody ustawiającej

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie, jeśli parametr konstruktora lub metody ustawiającej ukrywa inne pole lub inną zmienną.

Wyłączone

Parametr typu ukrywa inny typ

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli na przykład parametr typu klasy wewnętrznej ukrywa typ zewnętrzny.

Ostrzeżenie

Przesłonięte metody, ale niewidoczne w pakiecie

Domyślna metoda pakietu nie jest widoczna w innym pakiecie i dlatego nie można jej przesłonić. Po włączeniu tej opcji kompilator zasygnalizuje taką sytuację jako błąd lub ostrzeżenie.

Ostrzeżenie

Konflikt metody interfejsu z chronioną metodą Object

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku, gdy interfejs definiuje metodę niezgodną z niedziedziczoną metodą klasy Object. Do momentu rozwiązania tego konfliktu takiego interfejsu nie można zaimplementować, na przykład:

interface I {
   int clone();
}

Ostrzeżenie

Przesłanianie i konflikty nazw

Nieaktualny interfejs API

Po włączeniu tej opcji kompilator zasygnalizuje użycie nieaktualnego interfejsu API jako błąd lub ostrzeżenie.

Ostrzeżenie

Sygnalizuj użycie nieaktualnej funkcji API w nieaktualnym kodzie

Po włączeniu tej opcji kompilator zasygnalizuje użycie nieaktualnego interfejsu API w nieaktualnym kodzie. Istotność tego problemu kontroluje opcja Nieaktualny interfejs API.

Wyłączone

Sygnalizuj przesłanianie lub implementowanie nieaktualnej metody

Po włączeniu tej opcji kompilator zasygnalizuje przesłanianie lub implementowanie nieaktualnej metody. Istotność tego problemu kontroluje opcja Nieaktualny interfejs API.

Wyłączone

Zabronione odwołanie (reguły dostępu)

Po włączeniu tej opcji kompilator zasygnalizuje zabronione odwołanie określone w regułach dostępu.

Błąd

Niezalecane odwołanie (reguły dostępu)

Po włączeniu tej opcji kompilator zasygnalizuje niezalecane odwołanie określone w regułach dostępu.

Ostrzeżenie

Zbędny kod

Zmienna lokalna nie jest nigdy odczytywana

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowana zmienna lokalna nie jest nigdy używana w swoim zasięgu.

Ostrzeżenie

Parametr nie jest nigdy odczytywany

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowany parametr nie jest nigdy używany w swoim zasięgu.

Ignoruj

Sprawdź metody przesłaniające i implementujące

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie, jeśli zadeklarowany parametr nie jest nigdy używany w swoim zasięgu w metodach przesłaniających lub implementujących.

Wyłączone

Nieużywane instrukcje importowania

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieużywanego odwołania do instrukcji importu.

Ostrzeżenie

Nieużywane składowe lokalne lub private

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowana składowa lokalna lub private nie jest nigdy używana wewnątrz tej samej jednostki.

Ostrzeżenie

Zbędna instrukcja else

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej instrukcji else (np. "if (warunek) return; else doSomething();").

Ignoruj

Zbędne rzutowanie lub zbędna operacja instanceof

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnego rzutowania lub zbędnej operacji instanceof (np. "if (object instanceof Object) return;").

Ignoruj

Zbędna deklaracja zgłoszonego wyjątku kontrolowanego

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej deklaracji zgłoszonego wyjątku.

Ignoruj

Sprawdź metody przesłaniające i implementujące

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej deklaracji zgłoszonego wyjątku w metodach przesłaniających lub implementujących.

Wyłączone

Opcje narzędzia J2SE 5.0

Operacja na niekontrolowanym typie ogólnym

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania operacji na niekontrolowanym typie ogólnym.

Ostrzeżenie

Zadeklarowano parametr typu ogólnego z powiązaniem typu final

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania powiązania typów z udziałem typu final.

Ostrzeżenie

Niedokładne dopasowanie typów dla argumentów vararg

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania niedokładnego dopasowania typów dla argumentów vararg.

Ostrzeżenie

Konwersje pakowania i wypakowywania

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania konwersji pakowania lub wypakowywania. Automatyczne pakowanie może mieć negatywny wpływ na wydajność.

Ignoruj

Brak adnotacji @Override

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania metody przesłaniającej inną zaimplementowaną metodę bez adnotacji @Override.

Ignoruj

Brak adnotacji @Deprecated

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania nieaktualnego typu bez dodatkowej adnotacji @Deprecated.

Ignoruj

Adnotacja używana jako nadinterfejs

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania typu implementującego adnotację. Choć jest to możliwe, uważa się to za zły styl programowania.

Ostrzeżenie

Nie wszystkie stałe enum objęte klauzulą switch

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania instrukcji switch, która nie zawiera instrukcji case dla każdej stałej enum przywoływanego typu wyliczeniowego.

Ignoruj

Nieobsługiwane elementy ostrzeżeń w adnotacji @SuppressWarnings

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania nieobsługiwanego elementu ostrzeżenia w adnotacji @SuppressWarnings.

Ostrzeżenie

Włącz adnotacje @SuppressWarnings

Po włączeniu tej opcji kompilator będzie przetwarzał adnotacje @SuppressWarnings.

Włączone

Pojęcia pokrewne

Program budujący Java

Czynności pokrewne

Budowanie programu Java
Praca ze ścieżkami budowania
Praca ze środowiskami JRE

Informacje pokrewne

Preferencje zmiennych ścieżki klasy
Właściwości ścieżki budowania Java