可以从一些 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 核心”选项的列表位于下表中。所有表都具有相同的组织形式,即,用圆括号将选项标识括起来,并用粗斜体来打印缺省值。
描述 | 值 |
---|---|
生成局部变量调试属性 (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 |
描述 | 值 |
---|---|
计算项目构建次序 (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 |