web-dev-qa-db-ja.com

javac1.8クラスが見つかりません

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はインストール中にいくつかの構成を設定しますか?

80
kamilz
クラスが見つかりません: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
172

Kristian Holdhusの答え(正しいとマークされている)の続きとして、代わりに Ant javac taskcompiler属性を使用できます。 compiler="modern"の設定には、後方互換性(1.3まで)と前方互換性の両方が必要です。

これにより、Javaシステムプロパティbuild.compilerという名前を設定する必要がなくなります。 compilerタスクにjavac属性を明示的に設定しない場合にのみ、Antはフォールバックとしてbuild.compilerの値を使用します。

14
Chuck Daniels

これと同じ問題がありました。 Java_HOMEとJRE_HOMEを正しく設定しました。 Ant> 1.9もありました。

私がそれを修正するためにしたことは、Eclipse to Window-> Preferencesに行くことです。 Antを展開し、ランタイムを選択します。デフォルトでは、「クラスパス」タブが選択され、右側に「Ant Home」というボタンがあります。このボタンをクリックして、Antフォルダーを指していることを再確認します。

7
Mike Kuenzi
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インストールに設定すれば問題ありません。

3

Ecliseで試してみたところ、同じエラーが発生しましたクラスが見つかりません:javac1.8

システムでANTバージョンを確認しました

> ant -version

2015年6月29日にコンパイルされたApache Ant(TM)バージョン1.9.6

コマンドプロンプトからbuild.xmlを実行しようとすると、機能しました。次に、Eclipseで、ANTの古いバージョンを参照していることを確認しました。

EclipseでANT HOMEパスを編集しただけで、ここからも機能しました。 :)

以下は、EclipseでANTパスを編集する必要がある場所の画像です。

  1. Build.xmlファイルを右クリックします
  2. として実行
  3. 外部ツールの構成
  4. クラスパスタブを選択します

ここからANTホームパスを変更します。

enter image description here

2
KulDeep

1.9未満のAntバージョンと互換性のないJava 8としてAntを1.9.xリリースに更新します

1
Neha Priya

システムにANT 1.10をダウンロードして解凍し、プロジェクトのEclipseのANTホームを1.10に変更してみてください。機能するはずです。詳細についてはこちらをお読みください。 http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html

0
Badal Singh

Antを1.9.xリリースにアップデートするには、Java 8として1.9以下のAntバージョンとの互換性がないか、comand put -Dbuild.compiler = javac1.7をインストールします。以下を参照してください。

antリリース-Dbuild.compiler = javac1.7

0
linhadiretalipe

Build.XMLがbuild.compilerプロパティで言及されたJavaバージョンを使用しようとするため、ANTを介して戦争を構築する際の問題は、build.propertiesファイルのJavaバージョンの不一致にも関連する場合があります。

build.compilerプロパティが目的のJavaバージョンと同じかどうかを確認します。

0
SoSufi

他のすべてのソリューションを試しましたが、どれも機能しませんでした。私はついにEclipseで私のために働いたアプローチを見つけました:

  • Antタスク名を右クリックします。 antウィンドウの「compileCustomSrc」。
  • Run As | External Tool Configurationsを選択します
  • JREタブで、Separate JRE: Java SE7またはJava 7の名前を選択し、Applyを押してからRunを押します。

Antタスクが実行され、正しくビルドされます!

0
Brad Parks

プラグインディレクトリに新しいバージョンのAntを含む新しいバージョンのEclipseをダウンロードできます。次に、Ant jarを古いEclipseのプラグインディレクトリにコピーします。 Eclipseは、Antの新しいバージョンを自動的にポイントします。これは、古いケプラーと新しいMars2で機能しました。

0
techron