web-dev-qa-db-ja.com

Ant "Java_HOMEはJDKを指していません"-しかし

Java 1.7.0_52(または約))に更新したため、Ant build.xmlを実行できません。Windows7ラップトップでEclipseを使用してローカルで何年も実行していますが、最新のjave jdkは何か異なるものを更新します(?)。

BUILD FAILED
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler;
com.Sun.tools.javac.Main is not on the classpath.
Perhaps Java_HOME does not point to the JDK.
It is currently set to "D:\Morten\Java\jdk1.7.0_52"

これは私のjdkです!そのため、Java_HOMEはjdkを指しています(エラーメッセージからも明らかです)。いつものように、私のパスにbinフォルダーがあるJava_HOMEがあります。同じD:\ Morten\Java\jdk1.7.0_52を指すJREを使用してEclipseを構成しました(外部ツール構成)(「JREの分離」設定を使用)。そして、私は他の多くの構成を試してみました-すべて運が悪かったのです。

私はここと他の場所のリストでたくさんの答えを読んでいて、すべての提案を試したと思う。ほとんどは、Java_HOMEが実際にjreを指しており、jdkに修正する必要があるか、「;」がある場合のようです。パスまたはそのようなもので。私の場合、これらのどれも当てはまらないようです。

助言がありますか?

15
Morten Grum

実際のメッセージは、Antがcom.Sun.tools.javac.Mainを見つけることができないということです。

これは、最新の「Sun」(Oracle)JDKが1.7.0_13(またはおそらく_14ですが、インストールディレクトリが示す「_52」ではない)という事実とともに、ディストリビューションを使用していないと思わせますAntが認識すること。これを確認するには、jar tvf $Java_HOME/lib/tools.jarを実行し、そのクラスを探します。

Ant Manual は、さまざまなコンパイラを使用する方法について説明しています。私は「Sun」コンパイラーのみを使用しているため、ポインターを提供できないのではないかと心配しています。


編集:ビルドファイルにfork="yes"を設定してみることもできます。これにより、コンパイラクラスを呼び出そうとするのではなく、コンパイラ実行可能ファイルが実行されます。

6
parsifal

Eclipseを介してANTを実行すると、同じメッセージが表示されました。

私のために働いたもの:

  1. Eclipseで、メニューにアクセスします: "Window-> Preferences";
  2. ツリーで「Ant-> Runtime」にアクセスします。
  3. [クラスパス]タブにアクセスします。
  4. [グローバルエントリ]アイテムを展開します。
  5. グローバルエントリ内では、tools.jarへのパスが間違っていました。古いバージョンのJavaを指していました。
  6. 間違ったエントリーを削除し、「Add External Jars」ボタンで正しいエントリーを追加しました。動いた。

enter image description here

33
Vini

ソリューション "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext "from here は非常に役に立ち、私のために働きました。

9
Bose

Java_HOMEをEclipse-Preferences-Java-Build Path-Classpath変数に追加します。

0
superuser

Java_HOME\binenv PATHに追加してみてください。

0
user626607