現在、Java ソース ファイルをコンパイルするためにバックエンドで ecj を使用している Java ide (ide 自体は、Eclipse 以外の Java 環境で記述されています) に取り組んでいます。ast-parser、インクリメンタル コンパイルなどの jdt コア コンポーネントによって提供されるいくつかの高度な機能を使用したいので、ecj を jdt コアに置き換える方法を確認するために微調整していました。ecj.jar を org.eclipse.jdt に置き換えました。 .core_3.7.1.XXXXX.jar、いくつかのクラスパスを更新し、ant で ide を再構築しました。IDE から Java ソース ファイルをコンパイルすると、次のようになります。
java.lang.NoClassDefFoundError: org/eclipse/jdt/core/compiler/batch/BatchCompiler
ecj の代わりに jdt.core jar を含めるように ide のクラスパスを更新しました。jdt コアには明らかにバッチ コンパイラが含まれています。それで、私は何が欠けていますか?jdt.core には、Java ソース ファイルをコンパイルするための追加の依存関係が必要ですか? または、Eclipse 以外の環境で ecj の代わりに jdt.core を使用するのは悪い考えですか?