编译 Java 代码

JDT 插件包含增量式和批处理 Java 编译器,用以根据源代码来构建 Java 的 .class 文件。编译器没有提供直接 API。在 Java 项目上,它是作为增量式构建器安装的。编译是使用标准平台构建机制触发的。

资源构建器中详细地描述了平台构建机制。

编译代码

可以使用构建 API 来使用程序编译项目中的 Java 源文件。

IProgressMonitor myProgressMonitor;
myProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, myProgressMonitor);

对于 Java 项目,这将调用 Java 增量式项目构建器(以及已经添加到项目的构建规范中的任何其他增量式项目构建器)。

问题确定

JDT 核心定义了专用标记(标记类型“org.eclipse.jdt.core.problem”)来指示编译问题。要使用程序发现由编译器检测到的问题, 应该使用标准的平台标记协议。有关使用标记的概述,参见资源标记

以下代码片段查找编译单元中的所有 Java 问题标记。

public IMarker[] findJavaProblemMarkers(ICompilationUnit cu) 
    throws CoreException {
    IResource javaSourceFile = cu.getUnderlyingResource();
    IMarker[] markers = 
        javaSourceFile.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
            true, IResource.DEPTH_INFINITE);
}

Java 问题标记是由 Java 增量式项目构建器来维护的, 在问题得到解决以及重新编译 Java 源代码后,将自动除去这些标记。