“JDT 核心”选项

“JDT 核心”选项控制核心功能部件(如 Java 编译器、代码格式化程序和代码辅助)的行为以及其它核心行为。在 JavaCore 中定义了用于访问选项的 API。可以成组地访问选项,如下所示:

还可以通过字符串名称来个别地访问选项。

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

以下代码段将所有核心选项的值恢复为它们的缺省值,但 COMPILER_PB_DEPRECATION 除外,它是专门设置的。

   // 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);
以下代码段保留当前选项的值并只修改一个选项(COMPILER_PB_DEPRECATION):
   // 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);

特定于项目的选项

可以使用 IJavaProject 中的协议来逐个项目地覆盖选项的值。

以下代码段以两种不同的方法检索特定项目的选项(COMPILER_PB_DEPRECATION)的值。布尔参数控制是只应该在查询中返回特定于项目的选项还是应该将项目的选项值与 JavaCore 中的值合并。  

   // Get the project
   IJavaProject project = ...;

   // See if the value of an option has been set in this project
   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false);
   if (value == null) {
     // no specific option was set on the project
     ...
   }
   
   // Get the value of an option from this project.  Use the value from
   // JavaCore value if none is specified for the project
   String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);

“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
报告建议不要使用的代码中的建议不要使用的内容COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE
当启用此项时,如果使用了建议不要使用的 API,编译器将发出错误或警告信号。 ENABLED
DISABLED
报告隐藏的 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_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT
启用此项时,编译器将指出抽象方法实现中的未使用的参数。 ENABLED
DISABLED
如果覆盖具体方法,则报告未使用的参数COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE
启用此项时,编译器将指出覆盖具体方法的方法中的未使用的参数。 ENABLED
DISABLED
报告未使用的导入COMPILER_PB_UNUSED_IMPORT
当启用此项时,编译器将对未使用的导入引用发出错误或警告 ERROR
WARNING
IGNORE
报告未使用的私有成员COMPILER_PB_UNUSED_PRIVATE_MEMBER
启用此项时,每当声明了私有方法或字段但是从未在同一单元中使用它们时,编译器将发出错误或警告。 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_PB_STATIC_ACCESS_RECEIVER
当启用此项时,每当使用表达式接收器访问静态字段或方法时,编译器将发出错误或警告。 ERROR
WARNING
IGNORE
报告无效的赋值COMPILER_PB_NO_EFFECT_ASSIGNMENT
当启用此项时,每当赋值无效时(例如“x = x”),编译器将发出错误或警告。 ERROR
WARNING
IGNORE
报告与非继承方法不兼容的接口方法COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD
当启用此项时,每当接口定义与非继承 Object 方法不兼容的方法时,编译器将发出错误或警告。 ERROR
WARNING
IGNORE
报告 char[] 表达式在字符串并置中的使用COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION
启用此项时,每当在字符串并置中使用 char[] 表达式时(例如 "hello" + new char[]{'w','o','r','l','d'}),编译器将发出错误或警告。 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
定义自动任务标记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 之间插入空白行。如果选择不插入,则 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
在强制转型表达式中插入空格FORMATTER_SPACE_CASTEXPRESSION
当为“插入”时,在强制转型表达式的类型与表达式之间添加一个空格。 INSERT
DO_NOT_INSERT

代码辅助选项

描述
激活与可视性敏感的补全CODEASSIST_VISIBILITY_CHECK
当活动时,补全不显示您看不见的内容(例如,您看不到超类的私有方法)。 ENABLED
DISABLED
自动限定隐式成员CODEASSIST_IMPLICIT_QUALIFICATION
当活动时,补全将自动限定隐式字段引用和消息表达式的完成。 ENABLED
DISABLED
定义字段名的前缀CODEASSIST_FIELD_PREFIXES
当前缀不是空白时,字段名的补全将以其中一个建议的前缀开始。 {<prefix>[,<prefix>]*}。
缺省值为 ""
定义静态字段名的前缀CODEASSIST_STATIC_FIELD_PREFIXES
当前缀不是空白时,静态字段名的补全将以其中一个建议的前缀开始。 {<prefix>[,<prefix>]*}。
缺省值为 ""
定义局部变量名的前缀CODEASSIST_LOCAL_PREFIXES
当前缀不是空白时,局部变量名的补全将以其中一个建议的前缀开始。 {<prefix>[,<prefix>]*}。
缺省值为 ""
定义自变量名的前缀CODEASSIST_FIELD_PREFIXES
当前缀不是空白时,自变量名的补全将以其中一个建议的前缀开始。 {<prefix>[,<prefix>]*}。
缺省值为 ""
定义字段名的后缀CODEASSIST_FIELD_SUFFIXES
当后缀不是空白时,字段名的补全将以其中一个建议的后缀结束。 {<suffix>[,<suffix>]*}。
缺省值为 ""
定义静态字段名的后缀CODEASSIST_STATIC_FIELD_SUFFIXES
当后缀不是空白时,静态字段名的补全将以其中一个建议的后缀结束。 {<suffix>[,<suffix>]*}。
缺省值为 ""
定义局部变量名的后缀CODEASSIST_LOCAL_SUFFIXES
当后缀不是空白时,局部变量名的补全将以其中一个建议的后缀结束。 {<suffix>[,<suffix>]*}。
缺省值为 ""
定义自变量名的后缀CODEASSIST_ARGUMENT_SUFFIXES
当后缀不是空白时,自变量名的补全将以其中一个建议的后缀结束。 {<suffix>[,<suffix>]*}。
缺省值为 ""

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