找不到tools.jar。请检查C:\ Program Files \ Java \ jre1.8.0_151是否包含有效的JDK安装

时间:2017-11-14 16:46:45

标签: java android gradle

即使我手动配置了JDK项目结构file/Project structure,它仍然会显示此错误 FAILURE:构建因异常而失败。

`出了什么问题: 任务':sample:compileReleaseJavaWithJavac'执行失败。

  

无法找到tools.jar。请检查C:\ Program Files \ Java \ jre1.8.0_151是否包含有效的JDK安装。

我很困惑为什么它还在寻找C:\ Program Files \ Java \ jre1.8.0_151而不是JDK

21 个答案:

答案 0 :(得分:37)

最后,我在这里找到了解决方案。

我将jdk path org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_144添加到gradle.properties文件并进行了重建。它现在有效。

答案 1 :(得分:23)

ERROR: Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_121 contains a valid JDK installation

tools.jar C:\Program Files\Java\jdk1.8.0_121\lib复制到C:\Program Files\Java\jre1.8\lib

现在已经解决了问题。

答案 2 :(得分:10)

刚刚发生在我身上。

显然,Java的自动更新程序为我安装和配置了新版本的JRE,同时保留了原有的JDK。所以尽管我确实有一个JDK,它并没有匹配当前的#34;活跃的" JRE,导致错误。

Download a matching version of the JDK到您当前安装的JRE,(在OP的案例151中)这应该可以解决问题。

答案 3 :(得分:6)

我遇到了同样的问题并修复了这样的问题:

  1. 使用相同的版本号从Oracle网站安装JDK 作为JRE,如果你还没有。
  2. 此外,将JAVA_HOME添加到Windows的环境变量中。
  3. 重新启动终端或开发环境以加载新的JAVA_HOME值。
  4. JAVE_HOME in System Environment Variables

答案 4 :(得分:2)

我做的是从PC上卸载Java,然后从Oracle下载并再次安装JDK。在此之后,它完美地工作。我认为问题是因为JRE和JDK更新版本彼此不同。

答案 5 :(得分:1)

我的错误通过从控制面板卸载所有Java更新和Java并重新安装JDK得以解决

答案 6 :(得分:1)

解决方案 1:

  1. 转到您的 android 文件夹 > Gradle.properties > 添加您的 jdk 路径。

  2. 清理并重建,然后就完成了。 // 仅供参考

    org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

解决方案 2 终于,我在这里找到了解决方案。

  1. 添加jdk路径

    to gradle.properties file and did a rebuild.
    
  2. 这也将解决您的错误。

这里是所有解决方案could not find tools.jar

答案 7 :(得分:1)

我所做的是从here下载JDK,启动Windows命令提示符(windows + r CMD),并使用以下命令将环境变量JAVA_HOME设置为c:\ Program Files \ Java \ jdk-14:

set JAVA_HOME="c:\Program Files\Java\jdk-14"

然后运行我想运行的内容。此后失败了,但是在另一个问题上。

答案 8 :(得分:1)

问题是您的gradle构建没有找到JAVA_HOME路径或JDK文件夹。因此,您可以在gradle.properties中声明路径,例如 org.gradle.java.home = C:\ Program Files \ Java \ [或您的jdk文件夹名称]

使用this guide来使用gradle.properties。

或者(并且我更喜欢这种解决方案) 在systmem变量中包含JAVA_HOME路径 ,然后重新启动CMD。

enter image description here

答案 9 :(得分:1)

当JDK和JRE在系统上安装了不同的版本时,会发生这种情况。使用匹配的JRE版本更新JDK。还要验证系统变量路径是否具有来自相同JDK版本的bin值。

答案 10 :(得分:0)

对我有用的是更新Android Studio并更新JAVA_HOME和ANDROID_HOME环境变量。我相信这是由于我更新Java版本(通过updater)但未更新jdk引起的。

答案 11 :(得分:0)

如果您的路径也太长,可能会发生这种情况。我通过将Java安装移动到

来解决了这个问题

C:\ Java \ jdk1.8.0_211

答案 12 :(得分:0)

在Eclipse中

右键单击项目-> Java构建路径->库

  1. 删除JRE
  2. 单击添加库-> JRE系统库->下一步->备用JRE->已安装的JRE->添加JDK并选择并应用

答案 13 :(得分:0)

您必须将jdk路径org.gradle.java.home = C:\ Program Files \ Java \ jdk1.8.0_102添加到gradle.properties 确保您编写安装在系统中的jdk版本。

答案 14 :(得分:0)

我的问题有两个方面:

  1. 我安装了JRE,但没有安装JDK。
  2. 我没有设置JAVA_HOME环境变量。

注意:我正在使用Fedora Linux。

要解决第一个问题,我关注了these instructions

要解决第二个问题,我仅将以下行添加到了fedisplacementmap文件中:

~/.bashrc

我必须重新启动IDE和终端,以确保对export JAVA_HOME=/usr/lib/jvm/java/ 所做的更改生效。

答案 15 :(得分:0)

对于tools.jar位于C:\ Program Files \ Java \ jdk1.8.0_201 \ lib中。我在Eclipse中更改了已安装的jre。 Windows-> Preferences-> Java->已安装的JRE,并将默认的jre指向您的jdk所在的位置。

答案 16 :(得分:0)

就我而言,我只安装了 JRE,因此您可以检查以确保您确实拥有有效的 jdk。如果不是,我建议您在设置环境变量和完成后卸载已安装的任何 java 和 download a correct jdk from here(jdk 带有 jre,因此无需下载任何其他内容)

答案 17 :(得分:0)

请确保JDK和jre处于相同版本,例如,如果您具有JRE版本 1.8.0_201 ,则JDK版本应为 1.8.0_201 版本。

答案 18 :(得分:0)

如果在JAVA_HOME中找不到Tools.jar,可以使用此方法。但您的 PC 中必须有 Android Studio

org.gradle.java.home=C:\\Program Files\\Android\\Android Studio\\jre

把它放在your project > android > gradle.properties

答案 19 :(得分:0)

就我而言,这是因为 JAVA_HOME 路径找不到它。

  • 关闭所有终端并打开一个新的

  • 在您的 Mac 上找到这样的目录: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home

  • 可能会改变的是版本,但是一旦你有了它,它就会在那个版本中运行 小路: 导出 JAVA_HOME = / 库 / Java / JavaVirtualMachines / jdk1.8.0_91.jdk / 目录 / 首页

在我的情况下,我在 React NATIVE 项目的根运行此命令:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

它奏效了。

答案 20 :(得分:0)

转到 android 文件夹 -> gradle.properties -> 添加你的java sdk路径

arr = np.ones((10, 3, 2))

arr1 = arr[:, np.newaxis, ...]
print(arr1.shape)  # (10, 1, 3, 2)

arr2 = np.expand_dims(arr, 1)
print(arr2.shape)  # (10, 1, 3, 2)

# check if the two arrays are equal
print(np.array_equal(arr1, arr2))  # True