61

エラーが発生します:

C:\ dev \ ws \ springapp \ build.xml:81:javacコンパイラが見つかりません。com.sun.tools.javac.Mainがクラスパスにありません。おそらく、JAVA_HOMEはJDKを指していません。現在、「C:\ ProgramFiles \ Java\jre6」に設定されています

しかし、JAVA_HOMEをC:\ Program Files \ Java\jdk1.6.0_14に明確に設定しました。

ANTはどこでこの値を取得していますか?

4

24 に答える 24

79
  1. Eclipseで、「実行」 → 「外部ツール」 → 「外部ツール構成」をクリックします。
  2. 「 JRE」タブをクリックします。
  3. [インストールされたJRE... ]ボタンをクリックします。
  4. [追加]ボタンをクリックします。(該当する場合は、標準VM
    を 選択します。)
  5. [ディレクトリ]ボタンをクリックします。
  6. インストールされているJavaのJDKバージョン(JREではない)を参照します
    (例C:\Program Files\Java\jdk1.7.0_04)。
  7. [完了]と[ OK ]をクリックします。
  8. 別のJREでJDKを選択し、 [閉じる]をクリックします。
  9. Antスクリプトを再実行します—楽しんでください!

これは、私が遭遇した特定のシナリオで機能しました。

于 2012-07-03T12:01:42.537 に答える
34

JAVA_HOMEを「C:\ ProgramFiles \ Java \ jdk1.6.0_14」に「明確に設定」したと言うとき、コマンドラインから「set」を実行すると表示されますか?まったく設定されていない場合、AntはJAVA_HOMEの値を推測すると思います... JAVA_HOMEの代わりにJAVAHOMEを設定した可能性はありますか?

ant.batそれがそのようなものでない場合は、バッチファイル(およびそれが呼び出すものは何でも-それが複雑であるかどうかは思い出せません)を編集して、最初と他のさまざまな興味深い場所でJAVA_HOMEを印刷することをお勧めします。

于 2009-10-13T07:59:59.240 に答える
19

次のコマンドを使用してAntビルドを実行しようとすると、同じ問題が発生しました。

java -cp ant.jar:ant-launcher.jar org.apache.tools.ant.Main

コマンドの出力は次のとおりです。

BUILD FAILED
XXX/build.xml:8: 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 "/usr/lib/jvm/java-6-openjdk/jre"

JDKがインストールされている「/usr/ lib / jvm / java-6-openjdk」とは対照的に、java実行可能ファイルはJAVA_HOMEとして「/ usr / lib / jvm / java-6-openjdk/jre」を選択しているようです。

タスクを設定fork="yes"することでこの問題を解決しました。<javac>

ご覧ください:http ://ant.apache.org/manual/Tasks/javac.html

于 2012-06-01T00:00:20.473 に答える
16

また、JAVA_HOME設定に/ binが含まれていて、Antが/ binを追加している可能性もあります。これにより、exeが見つかりません。それは私に起こった:}

于 2011-04-05T21:00:49.377 に答える
8

末尾のセミコロンは使用しないでください。これは機能しません。

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29;

この意志:

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29
于 2013-01-01T20:00:54.273 に答える
7

私は同様の問題に遭遇しました。リンクしてMavenビルドからAntタスクを実行すると、問題が発生しました。次の手順で修正しました。

  • JAVA_HOMEが正しく設定されていることを確認してください。コマンドラインのWindownsで次のように確認できます。C:> echo%JAVA_HOME%結果は次のようになります:C:\ Progra〜1 \ Java \ jdk1.6.0_30 \
  • ファイルtools.jarを%JAVA_HOME%\libからMavenのlibディレクトリにコピーします。

そしてそれは私のために働いた。

于 2012-10-09T08:22:30.913 に答える
5

この問題を解決するには、window-> Preferences->ant->runtimeにtools.jarファイルを追加します。

于 2011-08-25T09:40:48.763 に答える
4

Eclipseで、インストールされたJRE設定をプロジェクトのJDK(プロジェクトのプロパティ->Javaビルドパス->ライブラリ)に設定するか、設定のグローバルデフォルト(Java->インストールされたJRE)に設定します。eclispe設定は、システム変数よりも強力です。

于 2011-06-04T07:21:36.000 に答える
3

セミコロンは私を投げ捨てていました:私はJAVA_HOME「C:\jdk1.6.0_26;」に設定していました。「C:\jdk1.6.0_26」の代わりに。Jon Skeetの提案に従ってant.batファイルを調べた後、末尾のセミコロンを削除しました。これはそのファイルの一部です:

if "%JAVA_HOME%" == "" goto noJavaHome
if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome

そのため、セミコロンが最後から切り取られておらず、ファイルの検索に失敗したため、デフォルトで「C:\ Java\jre6」などになりました。

紛らわしい部分は、HowtoBuildページにセミコロンを使用するように記載されていることですが、それはそれを壊しているようです。

于 2011-07-11T19:40:33.710 に答える
3

システムとユーザーの環境変数について知っておいてください。ユーザーのものはシステムよりも優先されます。システム変数にJAVA_HOMEを設定し、ユーザー変数に同じエントリがある場合は、後者のみを取得します。

[マイコンピュータ]を右クリックし、[プロパティ]に移動し、[詳細設定]タブを選択し、[環境変数]をクリックして、ユーザーおよびシステム環境変数のリストを表示します。

于 2009-10-13T08:05:40.417 に答える
2

同じ問題に直面していました。javacタグの実行可能プロパティをjavac.exeの場所に設定すると、問題が解決しました。これで問題は解決しました

<javac srcdir="${srcDir}" destdir="${buildDir}" fork="true" executable="C:\Program Files\Java\jdk1.7.0_03\bin\javac"/>
于 2012-09-11T09:38:08.037 に答える
2

設定したがタイプミスがある場合JAVA_HOMEは、jre6パスへの偽の参照も表示されます。

于 2011-03-31T16:26:58.220 に答える
2

実際にこの回答はsuperuser.comで見つかりましたが、tools.jarをJDK\libディレクトリからJRE\libディレクトリにコピーする必要がありました。

ゼロの意味があります...私が考えることができるのは、Sunが最新のJavaランタイム(Java 7 Update 11)でこのバグを導入したか、現在のJDKの場所を読み取る方法でAntのバグを導入したことだけです(JREはJDKよりも更新されています)明らかにこれもSunの愚かです...彼らはJREを更新するたびにJDKをリリースする必要があります)。

私のJAVA_HOMEは正しく設定されました。「setJAVA_HOME」で確認しました。それは私のJDKディレクトリを指していて、正しくつづられていました。ただし、Antはjavacが見つからないと主張していましたが、JAVA_HOMEは私のJREディレクトリにあると思いました。

私のシステムは、最新のSun JRE7アップデート(10および11)の前は正常に機能していました。Antはバージョン1.8.4です

于 2013-01-25T22:06:51.220 に答える
2

他のすべてが正しい場合は、次のことを試してください

  1. [ウィンドウ]->[設定]->[Ant]->[ランタイム]->[クラスパス]に移動します
  2. グローバルエントリを展開し、ここで利用可能なjdkツールを確認します。
  3. 「C:\ ProgramFiles \ Java \ jdk1.6.0_45 \ lib\tools.jar」などの特定のバージョンのJavaから必要なtools.jarを追加します。
  4. 次に、結果を作成して確認します。

注:使用するJavaコンパイラーにtools.jarを追加し、複数のtools.jar(javaコンパイラー)が存在する場合は、tools.jarのリストで上に移動して優先順位を付けます。

于 2014-03-27T21:14:06.093 に答える
1

以下の手順からJDKパスを設定するだけです。

  1. [実行]->[外部ツール]->[外部ツールの構成]に移動します

  2. ->「JRE」を選択します。次に、ドロップダウンリストから使用可能なJDKを選択します。元。jdk1.8.0_25

于 2016-01-14T18:59:41.020 に答える
0

私も同じ問題を抱えていました。JAVA_HOMEが指すJDKパッケージにtools.jarがありませんでしたJDKのインストールにtools.jarが含まれていることを確認してください

(明らかにメッセージエラーは紛らわしいです)

于 2012-10-16T11:25:38.393 に答える
0

環境変数にJAVA_HOMEを「D:\Program Files\IBM\SDP\jdk 引用符やセミコロンを付けない」として設定します。それは私のために働きます。解決策を試してください。実際、ant.batでは、ant.batがそれJAVA_HOMEを見つけられない場合に備えて、適切かどうかをチェックしJAVA_HOME、デフォルトのJREを指します。

于 2012-06-04T15:19:25.537 に答える
0

私も同じ問題に直面していました。私はWindows7を使用しており、2つのバージョンのJavaをインストールしました。最初に最新バージョンのJava7をインストールし、次にバージョン5をインストールしました。

私のJavaインストールディレクトリの内容:

C:\Program Files\Java>
jdk1.5.0_14
jdk1.7.0_17
jre1.5.0_14
jre7

そして、私のJAVA_HOMEは正しい値に設定されました。

C:\>set ja
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_14

しかし、それでも私は同じ問題を抱えていました:

XXXXXXX\build.xml:478: The following error occurred while
executing this line:
XXXXXXX\build.xml:477: 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 "C:\Program Files\Java\jre7"

このスレッドですべての提案を試した後、私は自分の間違いに気づきました。「システム変数」セクションではなく「ユーザー変数」で環境変数を設定しようとしました。「システム変数」で設定した後、正常に動作しました。しかし、私は別の問題に直面しています。

それが指すJavaのデフォルトバージョンはまだ7です。

C:\>java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)

バージョン5を指すようにする方法がわかりません。

于 2013-04-25T11:25:26.143 に答える
0

Jenkinsでプロジェクトを構築するときに、この問題に直面しました。まず、ant.batant.batへのパスをシステム環境変数パスに追加することで修正されたが見つかりませんでした。その後、antはjdkディレクトリを見つけることができませんでした。これは、右クリックしmy computer > properties > advanced > environment variablesてという新しい環境変数を作成し、JAVA_HOMEそれに値を割り当てることで修正されましたC:\Program Files\Java\jdk1.7.0_21。この環境変数をユーザー変数に作成しないでください。システム変数の下でのみ作成してください。
どちらの場合も、システムを再起動する必要がありました。

于 2013-09-08T12:48:57.307 に答える
0

この問題が発生するのはよくあることです。環境ごとに2つの異なるバージョンのJava(Java6とJava7)があるため、システムに特定のJavaホームを設定できません。この問題を解決するために、build.xmlファイルを開くときに実行構成にJDKパスを含めました。このように、2つの異なるビルドファイルは、ビルドに2つの異なるJavaバージョンを使用します。この問題にはもっと良い解決策があるかもしれないと思いますが、少なくとも上記のアプローチでは、JAVA_HOME変数の設定を避けています。

于 2013-12-17T21:07:05.677 に答える
0

参考までに、私はWindows 7を使用しており、新しいJAVA_HOME設定を有効にするためにWindowsを再起動する必要がありました。

于 2013-12-17T22:09:16.570 に答える
0

同じ問題がありました。

c:\jb\src\build.xml:191: 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 "C:\Program Files\Java\jre7"

Total time: 0 seconds

c:\jb\src>echo %JAVA_HOME%
c:\Program Files\Java\jdk1.7.0_13

解決:

path = c:\ant\bin\;%PATH%
path = c:\Program Files\Java\jdk1.7.0_17\bin;%PATH%
set "JAVA_HOME=c:\Program Files\Java\jdk1.7.0_13"

jdk path命令だけでそれができると思いますが、上記の解決策が防弾であると理解するのは怠惰です。:-)

Windows7も使用

于 2014-01-06T16:30:34.450 に答える
0

同じための迅速な回避策は

C:\ Program Files \ Java \ jdk1.6.0_14 \ lib \ tools.jarをC:\ Program Files \ Java \ jre6 \lib\にコピーします

この例外は、JAVA_HOMEがC:\ Program Files \ Java \ jre6として設定されており、Antがその中でtools.jarを見つけることができないために発生します。

于 2014-06-20T19:51:25.060 に答える
0

組み込みのEclipsejdkを使用してEclipseでantを実行する必要がある場合は、build.xmlに以下の行を追加します。

<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
于 2016-03-24T17:05:58.863 に答える