我正在开发一个 java ide(ide 本身是用 java 编写的,非 eclipse 环境),它当前在后端使用 ecj 来编译 java 源文件。我正在调整以查看如何用 jdt 核心替换 ecj,因为我想使用 jdt 核心组件提供的一些高级功能,如 ast-parser、增量编译等。我用 org.eclipse.jdt 替换了 ecj.jar .core_3.7.1.XXXXX.jar,更新了一些classpath,用ant重建了ide。现在,当我从 ide 编译任何 java 源文件时,我得到:
java.lang.NoClassDefFoundError: org/eclipse/jdt/core/compiler/batch/BatchCompiler
我已经更新了 ide 的类路径以包含 jdt.core jar 而不是 ecj,并且 jdt 核心显然包含批处理编译器。那么我错过了什么?jdt.core 是否需要额外的依赖项来编译 java 源文件?还是在非 Eclipse 环境中使用 jdt.core 而不是 ecj 是个坏主意?