我正在研究一个Java ide(该ide本身是在Java,非Eclipse环境中编写的),当前在后端使用ecj来编译Java源文件。我正在调整以查看如何用jdt核心替换ecj,因为我想使用jdt核心组件提供的一些高级功能,例如ast-parser,增量编译等。我用org.eclipse.jdt替换了ecj.jar。 .core_3.7.1.XXXXX.jar,更新了一些类路径,并用ant重建了ide。现在,当我从ide编译任何Java源文件时,我得到:
java.lang.NoClassDefFoundError: org/eclipse/jdt/core/compiler/batch/BatchCompiler
我已经更新了ide的类路径,以包括jdt.core jar而不是ecj,而jdt core显然包含了批处理编译器。那我想念什么呢? jdt.core是否需要其他依赖项来编译Java源文件?还是在非蚀环境中使用jdt.core而不是ecj是一个坏主意?
最佳答案
我找到了解决方案。启动器的类路径需要更新。 JDT-core工作正常。