「JDT 基核」選項可以控制基核特性的行為,如 Java 編譯器、 程式碼格式製作程式、程式碼輔助,以及其他基核行為。存取這些選項的 API 定義在 JavaCore。 您可使用下列的群組來存取這些選項:
您也可以按字串名稱來個別存取這些選項。
選項及其值會儲存為所有已知配置選項的雜湊表。 已為每一個選項 ID 和可能的常數值,在 JavaCore 上定義說明常數。
下列程式碼片段會將所有基核選項的值還原為它們的預設值,但特別設定的值 (COMPILER_PB_DEPRECATION
) 除外。
// 取得現行選項
Hashtable options = JavaCore.getDefaultOptions();
// 變更選項值
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// 設定新選項
JavaCore.setOptions(options);
下列程式碼片段保存現行選項值,並僅修改一個值 (COMPILER_PB_DEPRECATION
):
// 取得現行選項
Hashtable options = JavaCore.getOptions();
// 變更選項值
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// 設定新選項
JavaCore.setOptions(options);
您可以在 IJavaProject 中使用通訊協定, 來置換每一個專案的選項值。
下列程式碼片段會以兩種不同方法,擷取特定專案的選項值 (COMPILER_PB_DEPRECATION
)。
Boolean 參數控制是否在查詢中僅應傳回專案特有的選項,
或專案的選項值是否應該與 JavaCore 中的值合併。
// 取得專案 IJavaProject project = ...; // 查看是否已在這個專案中設定選項值 String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false); if (value == null) { // 未在專案上設定任何特定選項 ... } // 從這個專案取得選項值。如果未對專案指定任何值, // 請使用來自 JavaCore 值的值 String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);
下表說明可用的「JDT 基核」選項。選項 ID 顯示在括弧內, 而預設值則以粗斜體字顯示。
說明 | 值 |
---|---|
產生區域變數除錯屬性(COMPILER_LOCAL_VARIABLE_ATTR) | |
當產生後,這個屬性將啟用區域變數名稱以顯示在除錯器中,不過只在已絕對指定變數的地方(.class 檔案稍後變大)。 | GENERATE |
DO_NOT_GENERATE | |
產生行號除錯屬性 (COMPILER_LINE_NUMBER_ATTR) | |
當產生後,這個屬性將啟用除錯器中強調顯示的原始碼(.class 檔案稍後變大)。 | GENERATE |
DO_NOT_GENERATE | |
建立來源除錯屬性 (COMPILER_SOURCE_FILE_ATTR) | |
當產生後,這個屬性啟用除錯器來表現對應的原始碼。 | GENERATE |
DO_NOT_GENERATE | |
保留未使用的區域變數 (COMPILER_CODEGEN_UNUSED_LOCAL) | |
除非要求要保留未使用的區域變數(如,從未讀取的),編譯器將最佳化區域變數,有可能開啟除錯。 | PRESERVE |
OPTIMIZE_OUT | |
定義目標 Java 平台 (COMPILER_CODEGEN_TARGET_PLATFORM) | |
二進位相容性原因,.class 檔案可以被標示為某個 VM 版本。 請注意,"1.4" 目標要求您也切換相容模式為 "1.4"。 | VERSION_1_1 |
VERSION_1_2 | |
VERSION_1_3 | |
VERSION_1_4 | |
報告無法接觸的程式碼 (COMPILER_PB_UNREACHABLE_CODE) | |
無法呼叫到程式碼,可選擇性地報告成錯誤、警告,或者加以忽略。 位元組碼一律產生最佳化程式碼。 | ERROR |
WARNING | |
IGNORE | |
報告無效的匯入 (COMPILER_PB_INVALID_IMPORT) | |
無法解析的 import 陳述式可選擇性地報告成錯誤、警告,或加以忽略。 | ERROR |
WARNING | |
IGNORE | |
報告嘗試置換套件預設的方法 (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD) | |
套件的預設方法在另一套件中看不到, 因此無法置換。啟用這個選項時,編譯器將發出信號作為錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告以建構子名稱的方法 (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME) | |
如果以建構子名稱來命名方法,通常會被視為較差的程式設計風格。 啟用這個選項時,編譯器將發出信號作為錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告說明 (COMPILER_PB_DEPRECATION) | |
當啟用此選項時, 編譯器會將使用已停用的 API 標為錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告已停用的程式碼內的反對 (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE) | |
當啟用此選項時,編譯器會將使用已停用的 API 標為錯誤或警告。 | ENABLED |
DISABLED | |
報告隱藏的快取區塊 (COMPILER_PB_HIDDEN_CATCH_BLOCK) | |
本端至 try 陳述式,有些快取區塊可能隱藏其他的,例如
try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {}.啟用這個選項時,編譯器將對已勾選異常狀況對應的隱藏的快取區塊發出錯誤或警告。 |
ERROR |
WARNING | |
IGNORE | |
報告未使用的本端 (COMPILER_PB_UNUSED_LOCAL) | |
當啟用時,編譯器將為未使用的區域變數發出錯誤或警告(如,從未讀取的變數) | ERROR |
WARNING | |
IGNORE | |
報告未使用的參數 (COMPILER_PB_UNUSED_PARAMETER) | |
當啟用時,編譯器將為未使用的方法參數發出錯誤或警告(如,從未讀取的參數) | ERROR |
WARNING | |
IGNORE | |
如果實作抽象方法,將報告未使用的參數 (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT) | |
當啟用時,編譯器將在抽象方法的實作方式中標出未使用的參數。 | ENABLED |
DISABLED | |
如果置換具體方法,將報告未使用的參數 (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE) | |
當啟用時,編譯器將在置換具體方法的方法中標出未使用的參數。 | ENABLED |
DISABLED | |
報告未使用的匯入 (COMPILER_PB_UNUSED_IMPORT) | |
當啟用時,編譯器將為未使用的匯入參照發出錯誤或警告 | ERROR |
WARNING | |
IGNORE | |
報告未使用的 Private 成員(COMPILER_PB_UNUSED_PRIVATE_MEMBER) | |
當啟用時,每當宣告 Private 方法或欄位時,但從未在同一單元內使用時, 編譯器將發出錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告綜合的存取模擬 (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION) | |
當啟用時, 只要其模擬存取含括類型中無法存取的成員, 編譯器即會發出錯誤或警告。這種存取可以有效能含意。 | ERROR |
WARNING | |
IGNORE | |
報告非外部化的字串文字 (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
當啟用時,編譯器將為非外部化的字串文字發出錯誤或警告(如,未標示的 //$NON-NLS-<n>$) | ERROR |
WARNING | |
IGNORE | |
報告 'assert' 識別碼的用法 (COMPILER_PB_ASSERT_IDENTIFIER) | |
當啟用時,當 'assert' 用作識別碼時,編譯器發出錯誤或警告(保留關鍵字在 1.4 中) | ERROR |
WARNING | |
IGNORE | |
向 Static 成員報告非靜態參照 (COMPILER_PB_STATIC_ACCESS_RECEIVER) | |
當啟用時,每當以表示式接收器存取 Static 欄位或方法時,編譯器將發出錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告沒有效果的指派 (COMPILER_PB_NO_EFFECT_ASSIGNMENT) | |
當啟用時,每當指派沒有效果(如 'x = x')時,編譯器將發出錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告與非繼承方法不相容的 Interface 方法 (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD) | |
當啟用時,每當介面定義一個與非繼承「物件」方法不相容的方法時, 編譯器將發出錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
報告 char[] 表示式在字串連結中的用法 (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION) | |
當啟用時,每當在「字串」連結(如 "hello" + new char[]{'w','o','r','l','d'})中使用 char[] 表示式時,編譯器將發出錯誤或警告。 | ERROR |
WARNING | |
IGNORE | |
設定原始檔相容模式 (COMPILER_SOURCE) | |
指定原始檔和 1.3 或 1.4 相容。從 1.4 開始,"assert" 為保留給主張支援的關鍵字。 也請注意,當切換至 1.4 模式,目標 VM 層次應該設為 "1.4" 而相容模式應為 "1.4"。 | VERSION_1_3 |
VERSION_1_4 | |
設定應用層次 (COMPILER_COMPLIANCE) | |
選取編譯器的應用層次。在 "1.3" 模式中,原始檔和目標檔目標不應該超過 "1.3" 層次。 | VERSION_1_3 |
VERSION_1_4 | |
每一編譯單元所報告的問題上限數目 (COMPILER_PB_MAX_PER_UNIT) | |
指定每一個編譯單元上所報告的問題上限數目(如果上限為 0 則報告所有問題)。 | 正整數。 預設值為 100 |
定義自動作業標示 (COMPILER_TASK_TAGS) | |
當標示不是空的時候,每當編譯器在 Java 原始碼中的任何註解內遇到其中一個對應標示時,編譯器將發出作業標示元。所產生的作業訊息將包括標示,以及直到下一個字行分隔符號或註解結尾的範圍, 而且這些訊息將被縮減。 | {<tag>[,<tag>]*}. 預設值為 "" |
定義自動作業優先順序 (COMPILER_TASK_PRIORITIES) | |
與「自動作業標示」相比,這個清單定義編譯器所發出之作業標示元的優先順序(高、一般或低)。 如果指定了預設值,每一個作業標示元的優先順序是 "NORMAL"。 | {<priority>[,<priority>]*}. 預設值為 "" |
說明 | 值 |
---|---|
為資源複製控制項指定過濾條件 (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
指定過濾條件以控制資源複製程序。 (<name> 是檔案名稱型樣(只容許 * 萬用字元)或結尾為 '/' 的資料夾名稱) | {<name>[,<name>]*}. 預設值為 "" |
如果是無效的類別路徑則中止 (CORE_JAVA_BUILD_INVALID_CLASSPATH) | |
如果類別路徑無效,指示建置器是否要捨棄 | ABORT |
IGNORE | |
清除輸出資料夾 (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER) | |
指出是否容許 JavaBuilder 在執行完整建置作業時清除輸出資料夾。 | CLEAN |
IGNORE |
說明 | 值 |
---|---|
計算專案建置次序 (CORE_JAVA_BUILD_ORDER) | |
指出 JavaCore 是否應該強迫專案建置次序作為類別路徑必備項目鏈的依據。 發出計算的要求時,接管平台預設的次序(依據專案參照)。 | COMPUTE |
IGNORE | |
指定預設的原始檔編碼格式 (CORE_ENCODING) | |
為編譯的原始檔取得編碼格式。 這個設定是唯讀的,相等於 ResourcesPlugin.getEncoding()。 | 任何支援的編碼名稱。 預設值為平台預設的 |
報告不完整的類別路徑 (CORE_INCOMPLETE_CLASSPATH) | |
指出當類別路徑上的項目不存在、不合法或看不見(如關閉了參照的專案)時, 所報告的問題的嚴重性。 | ERROR |
WARNING | |
報告類別路徑循環 (CORE_CIRCULAR_CLASSPATH) | |
指出在循環中併入專案時所報告的問題的嚴重性。 | ERROR |
WARNING | |
啟用使用類別路徑排除型樣 (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS) | |
當設為「啟用」時,專案類別路徑上沒有項目可以與排除型樣相關聯。 | ENABLED |
DISABLED | |
啟用使用類別路徑多個輸出位置 (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS) | |
當設為「啟用」時,專案類別路徑上沒有項目可以與特定輸出位置相關聯,防止使用多個輸出位置。 | ENABLED |
DISABLED |
說明 | 值 |
---|---|
在開始的大括弧前插入新行 (FORMATTER_NEWLINE_OPENING_BRACE) | |
插入時,插入新行在開始的大括弧前,否則不會插入任何東西 | INSERT |
DO_NOT_INSERT | |
在控制陳述式中插入新行 (FORMATTER_NEWLINE_CONTROL) | |
插入時,新行插入在 } 和下列 else、catch、finally 之間 | INSERT |
DO_NOT_INSERT | |
清除空白行 (FORMATTER_CLEAR_BLANK_LINES) | |
全部清除時,將移除所有空白行。保留一行時,僅保留一行,其餘都將移除。 | CLEAR_ALL |
PRESERVE_ONE | |
在 Else/If 之間插入新行 (FORMATTER_NEWLINE_ELSE_IF) | |
插入時,當他們是連續時,空白行插入在 else 和 if 之間。 選取不插入,else-if 儘可能保存在原來的行。 | INSERT |
DO_NOT_INSERT | |
在空白區塊之間插入新行 (FORMATTER_NEWLINE_ELSE_IF) | |
選擇插入時,若 } 後面沒有跟著關鍵字,將在連續的 { } 之間插入換行符號。 | INSERT |
DO_NOT_INSERT | |
分割超出長度的字行 (FORMATTER_LINE_SPLIT) | |
啟用分割長行(超出可配置長度)。長度 0 將停用分行 | 正整數。 預設值為 80 |
壓縮指派 (FORMATTER_COMPACT_ASSIGNMENT) | |
可以用非對稱方式製作以格式指派,如 'int x= 2;',當選擇 "NORMAL" 時,將在指派運算元前插入一個空格 | COMPACT |
NORMAL | |
定義內縮字元 (FORMATTER_TAB_CHAR) | |
選擇以 Tab 字元或空格內縮 | TAB |
SPACE | |
定義空格內縮長度 (FORMATTER_TAB_SIZE) | |
使用空格時,設定空格字元的數量以供每一個內縮標記使用。 | 正整數。 預設值為 4 |
在強制轉型表示式中插入空格 (FORMATTER_SPACE_CASTEXPRESSION) | |
當插入時,會在強制轉型表示式中類型與表示式之間加入空格。 | INSERT |
DO_NOT_INSERT |
說明 | 值 |
---|---|
啟動可見性敏感性的完成 (CODEASSIST_VISIBILITY_CHECK) | |
在作用中時,完成不顯示您所看不見的(例如,您看不見 Super 類別的私密方法)。 | ENABLED |
DISABLED | |
隱含成員的自動資格 (CODEASSIST_IMPLICIT_QUALIFICATION) | |
在作用中時,完成自動資格隱含的欄位參照和訊息表示式的完成。 | ENABLED |
DISABLED | |
定義欄位名稱的字首 (CODEASSIST_FIELD_PREFIXES) | |
當字首不是空的時,欄位名稱的完成將以其中一個提議的字首開頭。 | {<prefix>[,<prefix>]*}. 預設值為 "" |
定義 Static 欄位名稱的字首 (CODEASSIST_STATIC_FIELD_PREFIXES) | |
當字首不是空的時,Static 欄位名稱的完成將以其中一個提議的字首開頭。 | {<prefix>[,<prefix>]*}. 預設值為 "" |
定義區域變數名稱的字首 (CODEASSIST_LOCAL_PREFIXES) | |
當字首不是空的時,區域變數名稱的完成將以其中一個提議的字首開頭。 | {<prefix>[,<prefix>]*}. 預設值為 "" |
定義引數名稱的字首 (CODEASSIST_ARGUMENT_PREFIXES) | |
當字首不是空的時,引數名稱的完成將以其中一個提議的字首開頭。 | {<prefix>[,<prefix>]*}. 預設值為 "" |
定義欄位名稱的字尾 (CODEASSIST_FIELD_SUFFIXES) | |
當字尾不是空的時,欄位名稱的完成將以其中一個提議的字尾結束。 | {<suffix>[,<suffix>]*}. 預設值為 "" |
定義 Static 欄位名稱的字尾 (CODEASSIST_STATIC_FIELD_SUFFIXES) | |
當字尾不是空的時,Static 欄位名稱的完成將以其中一個提議的字尾結束。 | {<suffix>[,<suffix>]*}. 預設值為 "" |
定義區域變數名稱的字尾 (CODEASSIST_LOCAL_SUFFIXES) | |
當字尾不是空的時,區域變數名稱的完成將以其中一個提議的字尾結束。 | {<suffix>[,<suffix>]*}. 預設值為 "" |
定義引數名稱的字尾 (CODEASSIST_ARGUMENT_SUFFIXES) | |
當字尾不是空的時,引數名稱的完成將以其中一個提議的字尾結束。 | {<suffix>[,<suffix>]*}. 預設值為 "" |