常见问题:JDT

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

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

Java 包来自何处?

项目中只包含文件和文件夹。Java 包的概念是由 Java 项目的类路径引入的 (在 UI 中,“包”视图按照类路径定义的那样来呈示包)。提示:如果包结构不是您期望的结构,则检出类路径。Java 搜索基础结构只查找类路径上的 Java 元素的声明以及引用。

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

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

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

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

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

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

相关主题:

  • 参见“Java 设置”页面
  • 参见库选项卡
  • 为何我的所有资源同时出现在输出文件夹(例如 bin)中?

    如果 Java 项目正在使用源文件夹,则在编译项目中的源文件的过程中,Java 编译器还会将非 Java 资源复制到输出文件夹中, 因此,在正在运行的程序的类路径上会提供这些资源。

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

    使用源文件夹,并将不想复制到输出文件夹中的所有资源放入未包含在类路径中的单独文件夹中。

    如何创建缺省包?

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

    什么是重分解因子?

    重分解因子意味着行为保留的程序变换。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 元素的类型层次结构。