web-dev-qa-db-ja.com

Gradleはtools.jarを見つけられません

私はgradle付きのjavadocドックレットを使用しているので、jdkのlibフォルダーにあるtools.jarパッケージを使用する必要があります(私の場合は1.6.0_26)。

要点は、gradleは自動的にはそれを受け取らないということです。そのため、私はそのツールパッケージを自分のlibsフォルダーに追加し、次にそれをdependencies.gradleに追加していました。

今私は私のJDKホームから私のdependencies.gradleにそれを直接持って行きたいです。それをする方法はありますか?私は私のdependencies.gradleで次を試してみました:

compile files("${System.properties['Java.home']}/lib/tools.jar")

しかし、コンパイル中には見つかりません。

143
raspayu

それを見つけた。 システムプロパティ 'Java.home'はJava_HOME環境変数ではありません。Java_HOMEはJDKを指し、Java.homeはJREを指します。詳しくは そのページ をご覧ください。

Soo ...私の問題は、私のスタートポイントがjreフォルダ(C:\ jdk1.6.0_26\jre)であり、jdkフォルダ(C:\ jdk1.6.0_26)ではないということでした(tools.jarはCにあります)。 :\ jdk1.6.0_26\libフォルダ) dependencies.gradleのコンパイル行は、次のようになります。

compile files("${System.properties['Java.home']}/../lib/tools.jar")
74
raspayu

CLIを介してコマンドを実行しようとしたときに、この問題が発生しました。

システムがJREフォルダ、つまりD:\Program Files\Java\jre8\binを見ているときに問題が発生しました。ここを見れば、Tools.jarがないので、エラーです。

JDKがどこにあるのかを見つける必要があります。私の場合はD:\Program Files\Java\jdk1.8.0_11です。libディレクトリを見ると、Tools.jarが表示されます。

私がしたこと私は新しい環境変数Java_HOMEを作成しました: enter image description here

それからPATH変数を編集してJava_HOMEを含める必要があります。すなわち%Java_HOME%/bin;enter image description here

コマンドプロンプトを再度開くと実行されます。

124
benscabbia

Eclipseを使用してGradleタスクを実行しようとしたときと同じエラーが発生しました。私がコマンド(すなわち戦争)を実行するたびに、プロセスは次のような例外を投げました:

Tools.jarが見つかりませんでした。 C:\ Program Files\Java\Jre8 "が有効なJDKインストールであることを確認してください。

私はこの記事にリストされている解決策を試しましたが、それらのどれもこの問題を解決しませんでした。これが私の解決策です。

  1. [Gradle Task]ビューに移動します
  2. 実行したいタスクを右クリック
  3. Open Gradle Run Configurationを選択します。
  4. 「Javaホーム」タブでローカルのJDKリポジトリを選択し、「OK」をクリックします。

もう一度走って、楽しんでください!

68
rattek

次の内容のgradle.propertiesファイルを追加しました。

org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
41
bondehagen

私はbuntを使って同じようなケースを経験しました。マシンにはJREしかインストールされていません。そのため、JDKをインストールするために以下のコマンドを実行しました。

Sudo apt install openjdk-8-jdk

24
Italo Borssatto

私はこの解決策にも苦労していました。説明されているように、Gradleを使ってより良い方法を見つけました ここ 。 GradleからJVM/JDK情報を入手できます。

dependencies {
   runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}

とても簡単。

17
Mohammed

これをgradle.propertiesに追加します。

org.gradle.Java.home = C:¥Program Files¥Java¥jdk1.8.0_91

15
azizbekian

CentOS 7では、開発パッケージはtools.jarをインストールします。ファイルがJava-1.8.0-openjdkに存在しません

Sudo yum install Java-1.8.0-openjdk-devel

12

それは2年遅すぎるかもしれませんが、私は最近同じ問題に遭遇しました、そしてこれは私がこの記事を見つけた後に終わった解決策です:

import javax.tools.ToolProvider

dependencies {
  compile (
    files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
    ...
  }
}

Java.homeがJDKディレクトリの下にないディレクトリを指していて、さらにtools.jarの代わりにclasses.jarを持っているMac OS上でさえ指しているなら、それは動作するはずです。

11
Andrei LED

Windows 10で、私は同じ問題に遭遇し、これは私が問題をどのように修正したかということです。

  1. Advance System Settings>Environment Variables>System Variablesにアクセスする
  2. PATHを選択すると、デフォルトのC:\ProgramData\Oracle\Java\javapathが上書きされます。
  3. あなた自身のjdkインストールではJava_HOME= C:\Program Files\Java\jdk1.8.0_162
8
Dun0523

私のシステム(Win 10、JRE 1.8.0、Android Studio 3.1.2、Gradle 4.1)では、JREディレクトリ(tools.jar)にC:\Program Files\Java\jre1.8.0_171がありません。

しかし、私はそれをC:\Program Files\Android\Android Studio\jre\libで見つけて設定しようとしましたJava_HOME=C:\Program Files\Android\Android Studio\jre

それは(私にとって)うまくいきます!

4
sidn

Centos 7では、JDKだけがtools.jarを持っていますが、JREは持っていませんです。 Java 8 JRE(yum install Java-1.8.0-openjdk)はインストールしましたが、JDK(yum install Java-1.8.0-openjdk-devel)はインストールしていません。

後者をインストールすると問題が解決します。また、必ずJava_HOMEを設定してください。

3
WesternGun

Linux

nanoまたはgeditのようなテキストエディタで/etc/environmentを開き、以下を追加します。ライン:

Java_HOME="/usr/lib/jvm/open-jdk"

Windows

  1. システムコントロールパネルアプレットを起動します(スタート - 設定 - コントロールパネル - システム)。
  2. 詳細設定タブを選択します。
  3. 環境変数ボタンをクリックします。
  4. [システム環境変数]の下の[追加]ボタンをクリックして、次の行を貼り付けます。

    変数名:Java_HOME

    変数値に:C:\Program Files\Java\jdk1.x.x_xxx

    どこx.x_xxx jdkバージョンあなたはここからあなたのjdkバージョンを得ることができますC:\Program Files\Java

  5. 「システム環境変数」の下で、「パス」を選択して「編集」をクリックし、次に「新規」ボタンをクリックしてから、次の行を過ぎます。

    %Java_HOME%/bin;

3
Mortada Jafar

私の場合(Windows 10)、Javaのアップデート後に環境変数がなくなったので、次の手順で変数を追加し直しました 。https://confluence.atlassian.com/doc/setting- the-Java_home-windows-8895.html

2
Ciro Mine

これは私のために働いた:

私はメッセージを受け取っていました

タスク ':app:compileDebugJavaWithJavac'の実行に失敗しました。

Tools.jarが見つかりませんでした。 C:¥Program Files¥Java¥jre1.8.0_121に有効なJDKインストールが含まれていることを確認してください。

  • Android Studioで、SDKの場所を確認してください。
  • ファイル、プロジェクト構造、SDKの場所、JDKの場所。
  • 例:C:\ Android-studio\Android-studio\jre
  • C:¥Android-studio¥Android-studio¥jre¥libフォルダーにあるtools.jarファイルをC:¥Program Files¥Java¥jre1.8.0_121¥libフォルダーにコピーします。
  • リトライ。
2
live-love

他の回答と同様に、gradle.properties fileにorg.gradle.Java.home propertyを設定します。しかし、\区切り文字を使用したパスは機能しませんでした(Windows 10でビルド)

'org.gradle.Java.home'を介して提供されたJavaホームは無効です。無効なディレクトリ:C:Program FilesJavajdk1.8.0_65

だから代わりに

org.gradle.Java.home = C:¥Program Files¥Java¥jdk1.8.0_65

私は使わなければならなかった

org.gradle.Java.home = C:/ Program Files/Java/jdk1.8.0_65

それからビルドは成功しました

問題は、プロジェクトがJDKではなくJREでビルドされていることです。Eclipseからビルドしていたので、これもうまくいきました。

  • 「ウィンドウ」>「設定」>「Gradle」>「引数」で、Workspace JREを指定してJDKを指定します。
  • 「ウィンドウ」>「設定」>「Java」>「InstalledJRE」で、JDKをデフォルトとして指定します。
2
Piro

Tools.jarがそれをコンパイルクラスパスに作成したことを確認しましたか?パスが間違っている可能性があります。

task debug << {
    configurations.compile.each { println it }
}
1

「Open Gradle Run Configuration」の「Java_HOME」タブでJDKパスを追加すると、問題が解決します。

1
Haseena B

あなたがビルドするのにterminalを使っていて、あなたがこのエラーを持っているなら、あなたはあなたのgradle.propertiesファイルでAndroidスタジオにバンドルされているjdkを指すことができます:

org.gradle.Java.home=/usr/local/Android-studio/jre

私はトップオプションのほとんどを試してみましたが、それは私が私の環境設定に何か問題があったように思われるのでそれらは助けにはなりませんでした。私にとってこの問題を解決したのは、再インストールjdk1.8.0_201jre1.8.0_201でした。これにより、エラーが解決しました。誰かに役立つことを願っています。

0
Anton Belev

私はこの方法で問題を解決しました:

0
Veljko P.