web-dev-qa-db-ja.com

EclipseはどのようにしてJREのみでクラスをコンパイルしますか?

「カスタマイズ」された特別なJREを使用してコンパイルをバッチ処理する必要があります。

EclipseはこのJREを使用してクラスをコンパイルできますが、Eclipseの外部でビルドスクリプトを作成する必要があります。

JDKなしで.classファイルを生成するためにEclipseが使用する方法は何ですか?

33
glmxndr

Eclipseには、次の理由で独自のコンパイラが付属しています。

  • インクリメンタルコンパイル(プロジェクトの変更された部分だけをコンパイルできます。これは、たとえば、グローバルを変更した場合など、保存したファイルの量よりも多くなる可能性があります)
  • Eclipseコンパイラーは、コードにエラーが含まれている場合でもクラスファイルを作成できます。これにより、すべてがコンパイルされるわけではなくても、プロジェクトを実行できます。
  • コンパイラーはEclipseに [〜#〜] ast [〜#〜] を提供するので、あらゆる種類の凝ったことを実行できます(アウトラインのように、カーソルの下の変数があるすべての場所を表示します)追加費用なしで(つまり、コンパイラおよび別のパーサーを実行する必要はありません)。
47
Aaron Digulla

Eclipseには内部コンパイラが付属していると思います。互換性は、Java 1.3から1.6(Java->コンパイラの下の[設定]メニューを確認してください)から選択できます。したがって、Eclipseには外部JDKは必要ありません。付属しているので、コンパイルするのは自給自足です。

Eclipseの外部でビルドスクリプトを作成する場合は、実際のJDKに付属しているような外部コンパイラが必要になります。

5
Yuval

興味がある場合:Eclipseのコンパイラは JDTコア の一部です。

2
BalusC