Java 如何使用jdtcore代替ecj进行批编译

Java 如何使用jdtcore代替ecj进行批编译,java,eclipse-jdt,Java,Eclipse Jdt,我正在开发一个JavaIDE(ide本身是用java编写的,非eclipse环境),它目前在后端使用ecj来编译java源文件。我在考虑如何用jdt核心替换ecj,因为我想使用jdt核心组件提供的一些高级功能,如ast解析器、增量编译等。我用org.eclipse.jdt.core_3.7.1.XXXXX.jar替换了ecj.jar,更新了一些类路径,并用ant重建了ide。现在,当我从ide编译任何java源文件时,我得到: java.lang.NoClassDefFoundError: or

我正在开发一个JavaIDE(ide本身是用java编写的,非eclipse环境),它目前在后端使用ecj来编译java源文件。我在考虑如何用jdt核心替换ecj,因为我想使用jdt核心组件提供的一些高级功能,如ast解析器、增量编译等。我用org.eclipse.jdt.core_3.7.1.XXXXX.jar替换了ecj.jar,更新了一些类路径,并用ant重建了ide。现在,当我从ide编译任何java源文件时,我得到:

java.lang.NoClassDefFoundError: org/eclipse/jdt/core/compiler/batch/BatchCompiler

我已经更新了ide的类路径,以包含jdt.core jar而不是ecj,而且jdt-core显然包含批处理编译器。那么我错过了什么?core是否需要额外的依赖项来编译java源文件?或者在非eclipse环境中使用jdt.core而不是ecj是个坏主意吗?

我找到了解决方案。启动程序的类路径需要更新。jdtcore工作得很好