Java 編譯器

這個喜好設定頁面可讓您配置與編譯、建置以及檢查 Java 程式碼相關的各種設定。

「Java 編譯器」喜好設定分成以下各段:

一般

JDK 標準

選項

說明

預設值

編譯器標準層次

指定編譯器標準層次。

1.4

使用預設標準設定

當啟用時,在編譯器的相容層次方面,會套用預設的相容設定。

開啟

產生的類別檔相容性

指定所產生的類別檔相容性。

1.2

程式碼相容性

指定已接受之程式碼的相容性。

1.3

不接受名稱為 'assert' 的 ID

如果啟用,只要使用 'assert'(J2SE 1.4 中的保留關鍵字)作為 ID,編譯器即會發出錯誤或警告。

警告

不接受名稱為 'enum' 的 ID

如果啟用,只要使用 'enum'(J2SE 5.0 中的保留關鍵字)作為 ID,編譯器即會發出錯誤或警告。

警告

產生類別檔

新增變數屬性到產生的類別檔中

當啟用時,會在類別檔中新增變數屬性。這會讓區域變數名稱顯示在除錯器中(位於明確指定變數之處)。 產生的 .class 檔會變大。

開啟

新增行號屬性到產生的類別檔中

當啟用時,會在類別檔中新增行號資訊。這會在除錯器中強調顯示出程式碼。

開啟

新增程式檔名稱到產生的類別檔中

當啟用時,會在類別檔中新增程式檔名稱。這會讓除錯器顯示對應的程式碼。

開啟

保留未使用的區域變數

當啟用時,則不會將未用的區域變數(亦即,從未讀取)從類別檔中除去。如果除去這項,有可能會改變除錯。

開啟

列入 finally 區塊

如果啟用,finally 區塊會列入產生的類別檔中。這對效能有正面的影響,但可能會產生較大的類別檔。

關閉

建置

一般

選項

說明

預設值

每一編譯單元報告的問題數上限

指定一個編譯單元應報告的問題數。

100

啟用在來源資料夾中使用排除型樣

當停用時,專案類別路徑上沒有項目可與排除型樣相關聯。

開啟

啟用對來源資料夾使用多個輸出位置

當停用時,專案類別路徑上沒有項目可與特定輸出位置相關聯,因而防止使用多個輸出位置。

開啟

建置路徑問題

於建置路徑錯誤時中止建置

容許如果類別路徑無效,將建置器切換至中止。

開啟

不完整的建置路徑

指出當類別路徑上的項目不存在、不合規定或看不見(如關閉了參照專案)時,所報告的問題的嚴重性。

錯誤

循環相依關係

指出在循環中併入專案時所報告的問題的嚴重性。

錯誤

不相容的必要二進位檔

指出當專案需要不相容的二進位檔時,所報告的問題嚴重性。

忽略

輸出資料夾

重複的資源

指出當多次出現的資源將複製到輸出位置時所報告的問題的嚴重性。

警告

清除專案時清除輸出資料夾

指出是否容許「Java 建置器」在執行完整建置作業時清除輸出資料夾。

開啟

過濾的資源

以逗點分格方式列出不複製到輸出資料夾中的檔案型樣。  

''

錯誤/警告

程式碼樣式

選項

說明

預設值

Static 成員的非 Static 存取

當啟用時,每當以表示式接收器存取 Static 欄位或方法時,編譯器將發出錯誤或警告。Static 成員的參照應該以類型名稱定義。

警告

Static 成員的間接存取

如果啟用,編譯器會在間接存取 static 欄位或方法時,發出錯誤或警告。介面的 static 欄位應該以宣告類型名稱定義。

警告

實例欄位的不完整存取

如果啟用,編譯器會在發現不完整的欄位存取(例如:遺漏 'this')時,發出錯誤或警告。

忽略

未記載的空區塊

如果啟用,編譯器會在發現不含解說註解的空區塊陳述式時,發出錯誤或警告。

忽略

存取含括類型的不可存取成員

當啟用時, 只要其模擬存取含括類型中無法存取的成員, 編譯器即會發出錯誤或警告。這類存取可能涉及效能。

忽略

具有建構子名稱的方法

如果以建構子名稱來命名方法,通常會被視為較差的程式設計風格。 當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。

警告

使用未提出的字串

當啟用時,編譯器將為未提出的字串文字發出錯誤或警告(如,未標示的 //$NON-NLS-<n>$)。 

忽略

可能的程式設計問題

不含 serialVersionUID 的可序列化類別

如果啟用,編譯器會在實作 'java.io.Serializable' 的類型不含 serialVersionUID 欄位時,發出錯誤或警告。

警告

指派沒有影響(例如:'x = x')

如果啟用,編譯器會在指派沒有影響(例如:'x = x')時,發出錯誤或警告。

警告

可能的意外 Boolean 指派(例如:'if (a = b)')

如果啟用,編譯器會在發現可能的意外 Boolean 指派(例如:'if (a = b)')時,發出錯誤或警告。

警告

'finally' 未正常完成

如果啟用,編譯器會在 'finally' 陳述式未正常完成(例如:包含 return 陳述式)時,發出錯誤或警告。

警告

空的陳述式

如果啟用,編譯器會在發現空的陳述式(例如:過多的分號)時,發出錯誤或警告。

忽略

在字串連接中使用 char 陣列

當啟用時,每當在下列「字串」連結中使用 char[] 表示式時,編譯器就會發出錯誤或警告:

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

警告

隱藏 catch 區塊

對本端環境的 try 陳述式而言,某些 catch 區塊可能會隱藏其他區塊,例如:

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

當啟用這個選項時, 編譯器會針對對應至所檢查之異常狀況的快取區塊隱藏, 發出錯誤或警告。

警告

名稱投影和衝突

欄位宣告隱藏另一個欄位或變數

如果啟用這個選項,當欄位宣告隱藏另一個繼承的欄位時,編譯器會發出錯誤或警告。

忽略

區域變數宣告隱藏另一個欄位或變數

如果啟用這個選項,當區域變數宣告隱藏另一個欄位或變數時,編譯器會發出錯誤或警告。

忽略

包括建構子或 setter 方法參數

如果啟用這個選項,當建構子或 setter 方法參數隱藏另一個欄位或變數時,編譯器會另外發出錯誤或警告。

關閉

類型參數隱藏另一個類型

如果啟用這個選項,比方說,當內部類別的類型參數隱藏外部類型時,編譯器會發出錯誤或警告。

警告

已置換方法但看不到套件

套件的預設方法在另一套件中看不到, 因此無法置換。當啟用這個選項時, 編譯器會將這類情況標為錯誤或警告。

警告

介面方法與受保護的 'Object' 方法發生衝突

當啟用時,每當介面定義一個與非繼承「物件」方法不相容的方法時, 編譯器將發出錯誤或警告。在解決這個衝突之前,將無法實作這類介面,例如:

interface I {
   int clone();
}

警告

名稱投影和衝突

已棄用的 API

當啟用這個選項時, 編譯器會將使用已棄用的 API 標為錯誤或警告。

警告

通知使用已棄用之程式碼內已棄用的 API

一旦啟用,編譯器將發出信號,指出在已停用的程式碼內使用已棄用的 API。 問題的嚴重性是由「已棄用的 API」選項來控制。

關閉

通知置換或實作已棄用的方法

如果啟用,編譯器會通知置換或實作已棄用的方法。 問題的嚴重性是由「已棄用的 API」選項來控制。

關閉

禁止的參照(存取規則)

如果啟用,編譯器會通知存取規則中指定了禁止的參照。

錯誤

不建議的參照(存取規則)

如果啟用,編譯器會通知存取規則中指定了不建議的參照。

警告

不必要的程式碼

從未讀取區域變數

如果啟用,編譯器會在宣告了區域變數,但從未在其範圍內使用時,發出錯誤或警告。

警告

從未讀取參數

如果啟用,編譯器會在宣告了參數,但從未在其範圍內使用時,發出錯誤或警告。

忽略

檢查置換和實作方法

如果啟用,編譯器會在宣告了參數,但從未在其範圍內用來置換或實作方法時,另外發出錯誤或警告。

關閉

未使用的匯入項目

當啟用時, 編譯器會針對未用的匯入參照, 發出錯誤或警告。

警告

未使用的區域或私密成員

如果啟用,編譯器會在宣告了區域或私密成員,但從未在同一個單元內使用時,發出錯誤或警告。

警告

不必要的 else 陳述式

如果啟用,編譯器會在發現不必要的 else 陳述式(例如:if (condition) return; else doSomething();)時,發出錯誤或警告。

忽略

不必要的 cast 或 'instanceof' 作業

如果啟用,編譯器會在發現不必要的 cast 或 'instanceof' 作業(例如:if (object instanceof Object) return;)時,發出錯誤或警告。

忽略

不必要的擲出檢查異常狀況宣告

如果啟用,編譯器會在發現不必要的擲出異常狀況宣告時,發出錯誤或警告。

忽略

檢查置換和實作方法

如果啟用,編譯器會在置換或實作方法中發現不必要的擲出異常狀況宣告時,另外發出錯誤或警告。

關閉

J2SE 5.0 選項

未檢查的通用類型作業

如果啟用,編譯器會在發現未檢查的通用類型作業時,發出錯誤或警告。

警告

以 final 類型界限宣告的通用類型參數

如果啟用,編譯器會在發現用到 final 類型的類型界限時,發出錯誤或警告。

警告

vararg 引數不嚴格的類型比對

如果啟用,編譯器會在發現 vararg 引數不嚴格的類型比對時,發出錯誤或警告。

警告

boxing 和 unboxing 轉換

如果啟用,編譯器會在發現 boxing 或 unboxing 轉換時,發出錯誤或警告。autoboxing 對效能可能會有負面影響。

忽略

遺漏 '@Override' 註釋

如果啟用,編譯器會在發現方法置換了另一個實作的方法且遺漏 '@Override' 註釋時,發出錯誤或警告。

忽略

遺漏 '@Deprecated' 註釋

如果啟用,編譯器會在發現已棄用的類型但沒有其他 '@Deprecated' 註釋時,發出錯誤或警告。

忽略

註釋用來作為超介面

如果啟用,編譯器會在發現類型實作了註釋時,發出錯誤或警告。雖然可用,但這是不佳的做法。

警告

'switch' 未涵蓋所有 enum 常數

如果啟用,編譯器會在發現 switch 陳述式不含參照列舉之每一個 enum 常數的 case 陳述式時,發出錯誤或警告。

忽略

'@SuppressWarnings' 中有未處理的 warning 記號

如果啟用,編譯器會在發現 '@SuppressWarnings' 註釋中有未處理的 warning 記號時,發出錯誤或警告。

警告

啟用 '@SuppressWarnings' 註釋

如果啟用,編譯器會處理 '@SuppressWarnings' 註釋。

開啟

相關概念

Java 建置器

相關作業

建置 Java 程式
使用建置路徑
使用 JRE

參考資訊

「類別路徑變數」喜好設定
「Java 建置路徑」內容