私は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")
しかし、コンパイル中には見つかりません。
それを見つけた。 システムプロパティ '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")
CLIを介してコマンドを実行しようとしたときに、この問題が発生しました。
システムがJREフォルダ、つまりD:\Program Files\Java\jre8\bin
を見ているときに問題が発生しました。ここを見れば、Tools.jar
がないので、エラーです。
JDK
がどこにあるのかを見つける必要があります。私の場合はD:\Program Files\Java\jdk1.8.0_11
です。lib
ディレクトリを見ると、Tools.jar
が表示されます。
私がしたこと私は新しい環境変数Java_HOME
を作成しました:
それからPATH変数を編集してJava_HOMEを含める必要があります。すなわち%Java_HOME%/bin;
コマンドプロンプトを再度開くと実行されます。
Eclipseを使用してGradleタスクを実行しようとしたときと同じエラーが発生しました。私がコマンド(すなわち戦争)を実行するたびに、プロセスは次のような例外を投げました:
Tools.jarが見つかりませんでした。 C:\ Program Files\Java\Jre8 "が有効なJDKインストールであることを確認してください。
私はこの記事にリストされている解決策を試しましたが、それらのどれもこの問題を解決しませんでした。これが私の解決策です。
もう一度走って、楽しんでください!
次の内容のgradle.properties
ファイルを追加しました。
org.gradle.Java.home=C:\\Program Files\\Java\\jdk1.8.0_45
私はbuntを使って同じようなケースを経験しました。マシンにはJREしかインストールされていません。そのため、JDKをインストールするために以下のコマンドを実行しました。
Sudo apt install openjdk-8-jdk
私はこの解決策にも苦労していました。説明されているように、Gradleを使ってより良い方法を見つけました ここ 。 GradleからJVM/JDK情報を入手できます。
dependencies {
runtime files(org.gradle.internal.jvm.Jvm.current().toolsJar)
}
とても簡単。
これをgradle.properties
に追加します。
org.gradle.Java.home = C:¥Program Files¥Java¥jdk1.8.0_91
CentOS 7では、開発パッケージはtools.jarをインストールします。ファイルがJava-1.8.0-openjdkに存在しません
Sudo yum install Java-1.8.0-openjdk-devel
それは2年遅すぎるかもしれませんが、私は最近同じ問題に遭遇しました、そしてこれは私がこの記事を見つけた後に終わった解決策です:
import javax.tools.ToolProvider
dependencies {
compile (
files(((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()),
...
}
}
Java.homeがJDKディレクトリの下にないディレクトリを指していて、さらにtools.jarの代わりにclasses.jarを持っているMac OS上でさえ指しているなら、それは動作するはずです。
Windows 10で、私は同じ問題に遭遇し、これは私が問題をどのように修正したかということです。
Advance System Settings>Environment Variables>System Variables
にアクセスするC:\ProgramData\Oracle\Java\javapath
が上書きされます。C:\Program Files\Java\jdk1.8.0_162
私のシステム(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
それは(私にとって)うまくいきます!
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
を設定してください。
Linux
nanoまたはgeditのようなテキストエディタで/etc/environment
を開き、以下を追加します。ライン:
Java_HOME="/usr/lib/jvm/open-jdk"
Windows
[システム環境変数]の下の[追加]ボタンをクリックして、次の行を貼り付けます。
変数名:Java_HOME
変数値に:C:\Program Files\Java\jdk1.x.x_xxx
どこx.x_xxx
jdkバージョンあなたはここからあなたのjdkバージョンを得ることができますC:\Program Files\Java
「システム環境変数」の下で、「パス」を選択して「編集」をクリックし、次に「新規」ボタンをクリックしてから、次の行を過ぎます。
%Java_HOME%/bin;
私の場合(Windows 10)、Javaのアップデート後に環境変数がなくなったので、次の手順で変数を追加し直しました 。https://confluence.atlassian.com/doc/setting- the-Java_home-windows-8895.html
これは私のために働いた:
私はメッセージを受け取っていました
タスク ':app:compileDebugJavaWithJavac'の実行に失敗しました。
Tools.jarが見つかりませんでした。 C:¥Program Files¥Java¥jre1.8.0_121に有効なJDKインストールが含まれていることを確認してください。
他の回答と同様に、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からビルドしていたので、これもうまくいきました。
Tools.jarがそれをコンパイルクラスパスに作成したことを確認しましたか?パスが間違っている可能性があります。
task debug << {
configurations.compile.each { println it }
}
「Open Gradle Run Configuration」の「Java_HOME」タブでJDKパスを追加すると、問題が解決します。
あなたがビルドするのにterminalを使っていて、あなたがこのエラーを持っているなら、あなたはあなたのgradle.properties
ファイルでAndroidスタジオにバンドルされているjdkを指すことができます:
org.gradle.Java.home=/usr/local/Android-studio/jre
私はトップオプションのほとんどを試してみましたが、それは私が私の環境設定に何か問題があったように思われるのでそれらは助けにはなりませんでした。私にとってこの問題を解決したのは、再インストールjdk1.8.0_201
とjre1.8.0_201
でした。これにより、エラーが解決しました。誰かに役立つことを願っています。
私はこの方法で問題を解決しました: