JDT 基核選項

「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 基核選項說明

下表說明可用的「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

JavaCore 選項

說明
計算專案建置次序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 選項

說明
啟動可見性敏感性的完成 (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>]*}.
預設值為 ""

 Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.