处理“JDT 核心”选项

可以从一些 API 来访问“JDT 核心”选项。所有这些 API 都位于 JavaCore 中。处理这些选项只需要四种方法:

选项是作为所有已知可配置选项及其值的散列表来处理的。在 JavaCore 上已经为每个选项标识及其可能的常量值定义了助手常量。

如果想要只使用您的选项来配置“JDT 核心”,则下列代码段将起作用:

   // Get the current options
   Hashtable options = JavaCore.getDefaultOptions();
   
   // Change the value of an option
   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
   
   // Set the new options
JavaCore.setOptions(options);
如果想要保持当前选项并且只修改其中一个选项:
   // Get the current options
Hashtable options = JavaCore.getOptions();   
   // Change the value of an option
   options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
   
   // Set the new options
JavaCore.setOptions(options);

“JDT 核心”选项描述

所有“JDT 核心”选项的列表位于下表中。所有表都具有相同的组织形式,即,用圆括号将选项标识括起来,并用粗斜体来打印缺省值。

选项类别

编译器选项

描述
生成局部变量调试属性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
由于二进制兼容性方面的原因,可以用某些 VM 版本和更高版本来标记 .class 文件。注意,“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
(可选)可以将不能解析的导入语句报告为错误、警告,或者忽略它。 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
报告隐藏的 Catch 块COMPILER_PB_HIDDEN_CATCH_BLOCK
对于 try 语句局部而言,某些 catch 块可能隐藏其它内容,例如:
   try {
      throw new java.io.CharConversionException();
   } catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.
启用此选项时,编译器将对与检查到的异常相对应的已隐藏 catch 块发出错误或警告
ERROR
WARNING
IGNORE
报告未使用的局部变量COMPILER_PB_UNUSED_LOCAL
当启用此项时,编译器将对未使用的局部变量(即,从未读取的变量)发出错误或警告 ERROR
WARNING
IGNORE
报告未使用的参数COMPILER_PB_UNUSED_PARAMETER
当启用此项时,编译器将对未使用的方法参数(即,从未读取的参数)发出错误或警告 ERROR
WARNING
IGNORE
报告未使用的导入COMPILER_PB_UNUSED_IMPORT
当启用此项时,编译器将对未使用的导入引用发出错误或警告 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
设置源代码兼容性方式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
指定在每个编译单元上报告的最大问题数(如果最大值为零,则报告所有问题)。 一个正整数。
缺省值为 100

构建器选项

描述
为资源复制控制指定过滤器CORE_JAVA_BUILD_RESOURCE_COPY_FILTER
指定过滤器来控制资源复制过程。(<name> 是文件名模式(只允许使用 * 通配符)或以“/”结尾的文件夹的名称) {<name>[,<name>]*}。
缺省值为 ""
如果类路径无效,则异常终止CORE_JAVA_BUILD_INVALID_CLASSPATH
如果类路径无效,则指示构建器异常终止 ABORT
IGNORE

JavaCore 选项

描述
计算项目构建次序CORE_JAVA_BUILD_ORDER
指示 JavaCore 是否应该强制使项目构建次序基于类路径先决条件链。当请求计算时,这将取代平台缺省次序(基于项目引用)。 COMPUTE
IGNORE
指定缺省源代码编码格式CORE_ENCODING
获取已编译的源代码的编码格式。此设置是只读的,它等价于 ResourcesPlugin.getEncoding() 任何受支持的编码名称。
缺省值是平台缺省值

格式化程序选项

描述
在左花括号前面插入新行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 之间插入空白行。如果选择不插入,则 else-if 将保留在同一行上(如果可能的话)。 INSERT
DO_NOT_INSERT
在空白块中插入新行FORMATTER_NEWLINE_EMPTY_BLOCK
如果插入,且 } 后面未跟关键字的话,则会在相邻的 { 和 } 之间插入断行。 INSERT
DO_NOT_INSERT
分割超长行FORMATTER_LINE_SPLIT
允许分割较长的行(超过了可配置的长度)。如果长度为 0,则将禁用分行 一个正整数。
缺省值为 80
紧凑赋值FORMATTER_COMPACT_ASSIGNMENT
赋值可以不对称的格式进行,例如 'int x= 2;',如果选择“常规”,会在赋值操作符之前插入空格 COMPACT
NORMAL
定义缩进字符FORMATTER_TAB_CHAR
选择使用制表符或者空格来标识缩进 TAB
SPACE
定义空格缩进长度FORMATTER_TAB_SIZE
当使用空格时,设置要用于每个缩进标记的空格字符数。 一个正整数。
缺省值是 4

代码辅助选项

描述
激活与可视性相关的完成CODEASSIST_VISIBILITY_CHECK
当活动时,完成不显示您看不见的内容(例如,您看不到超类的专用方法)。 ENABLED
DISABLED
自动限定隐式成员CODEASSIST_IMPLICIT_QUALIFICATION
当活动时,完成将自动限定隐式字段引用和消息表达式的完成。 ENABLED
DISABLED

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