2つのjdk、jdk 1.5およびjdk 1.8をインストールしました。私は次のAnt build.xml設定ファイルを持っています:
<target name="compileCustomSrc">
<javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
<classpath>
<fileset dir="C:/lib/">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>
Jdk1.8をインストールする前に、Eclipseから呼び出されたAntは、すべてのソースを正常にコンパイルしました。しかし、今、私は次のエラーメッセージがあります:
クラスが見つかりません:javac1.8
私のJava_HOMEおよびJRE_HOME:
Java_HOME = C:\ Program Files(x86)\ Java\jdk1.5.0_16 JRE_HOME = C:\ Program Files(x86)\ Java\jre1.5.0_16
eclipse JREで1.5に設定します。 Java 1.8はインストール中にいくつかの構成を設定しますか?
クラスが見つかりません:javac1.8
このエラーは、Apache Antバージョン1.9.0未満で発生することがわかっています。Java 8と互換性がありません。Ant<1.9.0のバージョンを使用している場合は、 1.9.xリリース。
関連するバグレポートは次のとおりです。 https://issues.Apache.org/bugzilla/show_bug.cgi?id=53347
ところで、単にJava 8でコンパイルしたいが、実際のJava 8構文をコンパイルする必要がない場合、次の引数をjavacに渡すことができます。 workaround、これにより、古いバージョンのAntを引き続き使用できます。
-Dbuild.compiler=javac1.7
Kristian Holdhusの答え(正しいとマークされている)の続きとして、代わりに Ant javac task でcompiler
属性を使用できます。 compiler="modern"
の設定には、後方互換性(1.3まで)と前方互換性の両方が必要です。
これにより、Javaシステムプロパティbuild.compiler
という名前を設定する必要がなくなります。 compiler
タスクにjavac
属性を明示的に設定しない場合にのみ、Antはフォールバックとしてbuild.compiler
の値を使用します。
これと同じ問題がありました。 Java_HOMEとJRE_HOMEを正しく設定しました。 Ant> 1.9もありました。
私がそれを修正するためにしたことは、Eclipse to Window-> Preferencesに行くことです。 Antを展開し、ランタイムを選択します。デフォルトでは、「クラスパス」タブが選択され、右側に「Ant Home」というボタンがあります。このボタンをクリックして、Antフォルダーを指していることを再確認します。
Java_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16
Java_HOMEおよびJRE_HOMEはJava 1.5インストールに設定されているため、1.8バイナリ(javac
など)は見つかりません。それらをJava 1.8インストールに設定すれば問題ありません。
Ecliseで試してみたところ、同じエラーが発生しましたクラスが見つかりません:javac1.8
システムでANTバージョンを確認しました
> ant -version
2015年6月29日にコンパイルされたApache Ant(TM)バージョン1.9.6
コマンドプロンプトからbuild.xmlを実行しようとすると、機能しました。次に、Eclipseで、ANTの古いバージョンを参照していることを確認しました。
EclipseでANT HOMEパスを編集しただけで、ここからも機能しました。 :)
以下は、EclipseでANTパスを編集する必要がある場所の画像です。
ここからANTホームパスを変更します。
1.9未満のAntバージョンと互換性のないJava 8としてAntを1.9.xリリースに更新します
システムにANT 1.10をダウンロードして解凍し、プロジェクトのEclipseのANTホームを1.10に変更してみてください。機能するはずです。詳細についてはこちらをお読みください。 http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html
Antを1.9.xリリースにアップデートするには、Java 8として1.9以下のAntバージョンとの互換性がないか、comand put -Dbuild.compiler = javac1.7をインストールします。以下を参照してください。
antリリース-Dbuild.compiler = javac1.7
Build.XMLがbuild.compilerプロパティで言及されたJavaバージョンを使用しようとするため、ANTを介して戦争を構築する際の問題は、build.propertiesファイルのJavaバージョンの不一致にも関連する場合があります。
build.compilerプロパティが目的のJavaバージョンと同じかどうかを確認します。
他のすべてのソリューションを試しましたが、どれも機能しませんでした。私はついにEclipseで私のために働いたアプローチを見つけました:
ant
ウィンドウの「compileCustomSrc」。Run As | External Tool Configurations
を選択しますJRE
タブで、Separate JRE: Java SE7
またはJava 7の名前を選択し、Apply
を押してからRun
を押します。Antタスクが実行され、正しくビルドされます!
プラグインディレクトリに新しいバージョンのAntを含む新しいバージョンのEclipseをダウンロードできます。次に、Ant jarを古いEclipseのプラグインディレクトリにコピーします。 Eclipseは、Antの新しいバージョンを自動的にポイントします。これは、古いケプラーと新しいMars2で機能しました。