1. ホーム
  2. eclipse

[解決済み】 Ant "JAVA_HOME does not point to JDK" - しかし、それはそうです。

2022-02-12 03:29:43

質問

java 1.7.0_52 (またはその前後) にアップデートしてから、Ant の build.xml を実行できなくなりました。Windows 7 ラップトップの 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 を指しているのです(エラーメッセージからも明らかです)。私の JAVA_HOME には、いつものように bin フォルダがパスとして含まれています。Eclipseの外部ツールの設定でも、JREは同じD:³³³³を指しています(quot;Separate JRE"設定による)。他の設定も試しましたが、すべてうまくいきませんでした。

ここや他の場所のリストにある膨大な数の回答を読み、すべての提案を試したつもりです。ほとんどの場合、JAVA_HOME が実際には jre を指していて、jdk に修正する必要があるとか、パスに ";" が入っているとか、そのようなケースに該当するようです。私の場合は、いずれも当てはまらないようです。

何か提案はありますか?

解決方法は?

本当のメッセージは、Ant が com.sun.tools.javac.Main .

最新の JDK は 1.7.0_13 (あるいは _14 かもしれませんが、インストールディレクトリが示す "_52" ではありません) であることと合わせて考えると、Ant が認識する配布物を使用していないのだと思われます。これを確認するには、次のコマンドを実行します。 jar tvf $JAVA_HOME/lib/tools.jar で、そのクラスを探します。

は、その Antマニュアル は、さまざまなコンパイラで作業する方法について述べています。私はSunのコンパイラしか使ったことがないので、残念ながら何も言えません。


編集: また fork="yes" をビルドファイルの中に入れてください。これにより、コンパイラクラスを呼び出そうとするのではなく、コンパイラの実行ファイルが実行されるはずです。