Java Gradle找不到tools.jar

Java Gradle找不到tools.jar,java,gradle,groovy,build,Java,Gradle,Groovy,Build,我将JavadocDoclets与gradle一起使用,因此我需要使用package tools.jar,它位于jdk的lib文件夹中(在我的例子中是1.6.026) 关键是gradle不会自动接受它,所以我将该tools包添加到我的libs文件夹中,然后将其添加到dependencies.gradle 现在我想把它直接从我的JDK主页带到我的dependencies.gradle中。有办法吗?我已在dependencies.gradle中尝试了下一种方法: compile files("${S

我将JavadocDoclets与gradle一起使用,因此我需要使用package tools.jar,它位于jdk的lib文件夹中(在我的例子中是1.6.026)

关键是gradle不会自动接受它,所以我将该tools包添加到我的libs文件夹中,然后将其添加到dependencies.gradle

现在我想把它直接从我的JDK主页带到我的dependencies.gradle中。有办法吗?我已在dependencies.gradle中尝试了下一种方法:

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

但是它在编译时找不到它。

您确定tools.jar在编译类路径上找到了它吗?可能路径不正确

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

任务调试找到了它系统属性“java.home”不是java\u home环境变量。java\u home指向JDK,而java.home指向JRE。有关更多信息,请参阅

苏。。。我的问题是,我的起始点是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")

可能已经晚了两年,但我最近遇到了同样的问题,这就是我在发现以下问题后得出的解决方案:


如果java.home指向一个不在JDK目录下的目录,甚至在Mac OS上,如果您使用classes.jar而不是tools.jar,它应该可以工作。

我在尝试通过CLI运行命令时遇到了这个问题

系统查看JRE文件夹时出现问题,即。
D:\ProgramFiles\Java\jre8\bin
。如果我们查看那里,没有
Tools.jar
,因此出现了错误

在我的例子中,您需要找到
JDK
的位置:
D:\Program Files\Java\jdk1.8.0_11
,如果您查看
lib
目录,您将看到
Tools.jar

我所做的是创建了一个新的环境变量
JAVA\u HOME

然后您需要编辑PATH变量以包含JAVA_HOME,即
%JAVA_HOME%/bin


重新打开命令提示符并应运行

我也在为这个解决方案苦苦挣扎。如前所述,找到了一个更好的办法。 我们可以从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_45

将此添加到
gradle.properties

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
org.gradle.java.home=C:\ProgramFiles\java\jdk1.8.0\U 91


我在使用Eclipse执行Gradle任务时遇到了相同的错误。每次我运行命令(即war)时,进程都会抛出一个异常,如:

找不到tools.jar。请检查C:\Program Files\Java\Jre8“是否为有效的JDK安装

我尝试了本文中列出的解决方案,但没有一个解决了这个问题。以下是我的解决方案:

  • 转到“梯度任务”视图
  • 右键单击要执行的任务
  • 选择Open Gradle运行配置
  • 在“JavaHome”选项卡中选择本地JDK存储库,然后单击OK

  • 再次运行,享受!

    就像我在gradle.properties文件中设置的其他答案一样org.gradle.java.home属性。但是带分隔符的路径不起作用(在windows 10上构建):

    通过“org.gradle.Java.home”提供的Java home无效。无效 目录:C:程序文件JavaJDK1.8.0_65

    所以不是

    org.gradle.java.home=C:\ProgramFiles\java\jdk1.8.0\U 65

    我不得不使用

    org.gradle.java.home=C:/ProgramFiles/java/jdk1.8.0_65

    然后构建成功了

    问题是,项目是用JRE而不是JDK构建的,因为我是从eclipse构建它的,所以这也起到了作用:

    • 在窗口>首选项>渐变>参数中指定工作区JRE并指定您的JDK
    • 在窗口>首选项>Java>InstalledJRE中,将JDK指定为默认值

    在我的案例(Windows 10)中,在Java更新后,我丢失了环境变量,因此我修复了再次添加变量的问题,基于以下步骤

    我使用了一个类似的案例Ubuntu。这台机器只安装了JRE。因此,我只是执行下面的命令来安装JDK

    sudo-apt安装openjdk-8-jdk

    Linux

    在任何文本编辑器(如nano或gedit)中打开
    /etc/environment
    ,并添加以下行:

    JAVA_HOME="/usr/lib/jvm/open-jdk"
    
    窗口

  • 启动系统控制面板小程序(启动-设置-控制 面板-系统)
  • 选择高级选项卡
  • 单击环境 变量按钮
  • 在“系统变量”下,单击“添加”按钮,然后通过以下行:

    变量名中:
    JAVA\u HOME

    在变量值中:
    C:\ProgramFiles\Java\jdk1.x.x\u xxx

    其中
    x.x\u xxx
    jdk版本您可以从这里
    C:\Program Files\Java

  • 在“系统变量”下,选择“路径”,然后单击“编辑”,然后单击“新建”按钮,然后通过以下行:

    JAVA_HOME="/usr/lib/jvm/open-jdk"
    
    %JAVA\u HOME%/bin;


  • 通过“Open Gradle Run Configuration”中的JAVA_HOME选项卡添加JDK路径可以解决问题。

    这对我来说很有效:

    我收到消息了

    任务“:app:compiledBugJavaWithJavaC”的执行失败

    找不到tools.jar。请检查C:\Program Files\Java\jre1.8.0\u 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\u 121\lib文件夹中
    • 重试

    在windows 10上,我遇到了同样的问题,这就是我解决问题的方法

  • 访问
    高级系统设置>环境变量>系统
    变量org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_45
    
    org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
    
    org.gradle.java.home=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    
    echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
    
    echo $JAVA_HOME
    
    /usr/libexec/java_home -V
    
    nano ~/.zshenv
    
    export JAVA_HOME=YOUR_JAVA_PATH
    
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
    
    source ~/.zshenv
    
    echo $JAVA_HOME