有关 JDT 的常见问题

可以将 Java 编译器而不是内置编译器(例如,javac)与工作台配合使用吗?

不行。JDT 提供了许多高级功能部件,包括:全自动增量式重新编译、 代码片段求值、代码辅助、类型层次结构以及热码替换。这些功能部件需要工作台 Java 编译器(JDT 的增量式项目构建器的集成部件) 中的特殊支持,而这些特殊支持在标准 Java 编译器中是没有的。

Java 包来自何处?

项目中只包含文件和文件夹。Java 包的概念是由 Java 项目的类路径引入的(在用户界面中,“包资源管理器”按照类路径的定义来提供包)。提示:如果包结构不是您期望的结构,则应检查类路径。Java 搜索基础结构只查找类路径上的 Java 元素的声明以及引用。

何时使用内部和外部 JAR 库文件?

内部资源驻留在工作台中的一些项目中,因此,是由工作台来管理的; 与其它资源一样,这些资源可以是由工作台管理的版本。外部资源不在工作台中,并且只能通过引用来使用。例如,JRE 通常是外部资源并且非常大,不需要将它与 VCM 系统相关联。

何时应该使用 Java 项目内的源文件夹?

每个 Java 项目都是通过项目的类路径上的一个或多个源类型条目来定位它的 Java 源文件。使用源文件夹来将大型项目的包组织成有用的分组,或者将源代码与同一项目中的其它文件隔开。另外,如果某些文件(例如,文档)不需要放在构建路径上,则可以使用源文件夹。

什么是源连接,如何定义?

库是作为包含二进制类文件(也许还有其它资源)的 JAR 文件来存储的。这些二进制类文件提供了包、类、方法和字段的特征符信息。利用此信息就可以进行编译和运行,但是它包含的初始源代码的信息很少。为了更容易浏览和调试二进制库,有一种机制可以将相应的源 JAR(或 ZIP)文件与二进制 JAR 文件相关联。

为何我的所有资源都复制在输出文件夹(例如,bin)中?

如果 Java 项目正在使用源文件夹,则在编译项目中的源文件的过程中,Java 编译器还会将非 Java 资源复制到输出文件夹中,因此,在正在运行的程序的类路径上会提供这些资源。为了避免将某些资源复制到输出位置,可以在编译器首选项中设置资源过滤器:窗口 > 首选项 > Java > 编译器 > 构建路径

如何防止将文档文件复制到项目的输出文件夹中?

使用源文件夹,并将不想复制到输出文件夹的任何资源放入一个未包括在类路径中的单独文件夹中。还可以在编译器首选项中设置资源过滤器:窗口 > 首选项 > Java > 编译器 > 构建路径,例如,设置为 *.doc。

如何创建缺省包?

不需要创建缺省包。源文件夹或项目的根文件夹中的文件就被认为是在缺省包中。实际上,每个源文件夹都可以具有缺省包的段。

什么是重构?

重构意味着行为保留的程序变换。JDT 支持在 Martin Fowler 的书籍 Refactoring: Improving the Design of Existing Code , Addison Wesley 1999 中描述的若干变换。

何时使用代码选择/代码解析(F3)?

通过编译器的帮助来弄清楚与源范围相对应的 Java 元素。

Java 程序信息(例如,类型层次结构、声明和引用)是由 Java 构建器产生的吗?如果关闭了自动构建,仍然会更新这些信息吗?

Java 程序信息与 Java 构建器无关。执行资源更改或 Java 操作时,将自动更新 Java 程序信息。尤其是,当关闭了自动构建时,将继续准确地执行由 Java 工具提供的所有功能(例如,类型层次结构、代码辅助和搜索);例如,当执行繁重的重构时(这需要关闭构建器),仍然可以使用代码辅助,它将反映最新的更改(尚未构建)。除了启动程序(即,运行和调试)之外,需要 Java 构建器的唯一功能是对代码片段求值。

在重新打开工作台之后,在编辑 Java 源文件之后进行的首次构建似乎要花很长时间。这是为什么?

关闭工作台时,Java 增量式项目构建器将它的内部状态保存到文件中。重新打开项目之后进行首次构建时,Java 增量式项目构建器将恢复它的内部状态。如果此文件很大,用户就会经历非常长的构建延迟。

看不见类的类型层次结构。怎么办?

检查是否正确地设置了构建类路径。进行 Java 开发时,设置正确的构建类路径是一项重要任务。没有正确的构建路径,将无法编译代码。另外,还将无法搜索或查看 Java 元素的类型层次结构。

如何关闭“自动编译”,而在想要编译时如何进行手工编译?

清除窗口 > 首选项 >工作台 > 资源修改时自动执行构建复选框。当想要进行构建时,按 Ctrl+B,或者从菜单栏中选择项目 > 全部构建

提示:当关闭“自动编译”并且手工构建时,您可能还想选择窗口 > 首选项 > 工作台 > 手工构建前自动保存所有已修改的资源复选框。

当在“大纲”视图中选择方法或字段时,只在编辑器中显示该元素的源。如何查看整个文件的源?

有一个工具栏按钮叫做仅显示所选元素的源 — 您只需取消按这个按钮即可。

可以嵌套源文件夹吗?

是的,可以使用排除过滤器来创建嵌套的源文件夹。

可以让每个源文件夹有单独的输出文件夹吗?

是的,选择 Java 项目的 Java 构建路径 > 源属性页面中的允许源文件夹的输出文件夹复选框。

可以有位于工作区外部的输出或源文件夹吗?

是的,可以创建指向期望位置的链接文件夹并使用该文件夹来作为 Java 项目中的源或输出文件夹。

相关概念

Java 开发工具(JDT)

相关参考

“Java 构建路径”页面
JDT 词汇表

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