Gradle无法找到tools.jar

196

我正在使用gradle与javadoc doclets,因此我需要使用位于jdk的lib文件夹中的tools.jar包。

问题在于gradle不会自动引入它,所以我将该tools包添加到我的libs文件夹中,并将其添加到dependencies.gradle文件中。

现在我想直接从我的JDK主目录中获取它并引入到dependencies.gradle中。有什么方法可以实现吗? 我已经在我的dependencies.gradle文件中尝试了以下内容:

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

但是编译时它找不到它。


3
值得一提的是,在解决这个问题之前,就像我在遇到它时所做的那样,您需要确保已安装JDK。并且在某些系统上,您需要安装devel JDK软件包才能获取tools.jar工具。 - mrooney
31个回答

2
与其他答案一样,我在gradle.properties文件中设置了org.gradle.java.home属性。但是使用反斜杠分隔符的路径无法工作(在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

然后构建成功了。
问题在于该项目是使用JRE而不是JDK构建的,由于我是从eclipse进行构建的,这也起作用:
  • 在Window>Preferences>Gradle>Arguments中指定Workspace JRE并指定您的JDK。
  • 在Window>Preferences>Java>InstalledJREs中将您的JDK指定为默认值。

2

使用此方法与现代版本的Gradle一起使用:

def compiler = javaToolchains.compilerFor { languageVersion = JavaLanguageVersion.of(java.sourceCompatibility.majorVersion) }.get()
implementation compiler.metadata.installationPath.files('lib/tools.jar')

最优雅的答案是我理解官方Gradle文档(https://docs.gradle.org/current/userguide/toolchains.html)所启发的。 - Cool Soft
现在已经进行了修改,使得程序语言版本不再硬编码。 - Greg Allen
注意:此内容不适用于Java 17 - 不再有tools.jar。 - Greg Allen

2
在gradle.properties文件中输入以下代码行:
org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_45

示例图片

这是一个示例图片的链接。

1

我尝试了大多数顶级选项,但似乎我的环境设置有些问题,所以它们没有帮助。对我解决问题的方法是重新安装 jdk1.8.0_201jre1.8.0_201,这为我解决了错误。希望能帮到其他人。


多年以后:在使用Arch Linux时,我仍将java-8-openjdk设置为默认版本。只需将更新的版本设置为默认版本,问题就得到了解决:sudo archlinux-java set java-20-openjdk。我将此作为评论添加到您的解决方案中,因为我认为它与您的解决方案非常相似。 - undefined

1
无法找到 tools.jar MacOS
echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

重新启动 Shell


1
在“打开Gradle运行配置”中通过JAVA_HOME选项卡添加JDK路径将解决问题。

1
你确定在编译类路径上包含了tools.jar吗?也许路径不正确。
task debug << {
    configurations.compile.each { println it }
}

是的,它已经添加到类路径中了,但仍然存在问题。 - Abhishek Gupta

0
对我来说,这个错误是在尝试使用audioplayers flutter库之后发生的。 为了解决问题,我获取了如下文件夹中的tools.jar:

C:\Program Files\Android\Android Studio\jre\lib

并将其粘贴到

C:\Program Files\Java\jre1.8.0_181\lib.

之后,构建工作正常。

0

我的Android Studio版本:4.2.1

"tools.jar"由Oracle JDK提供,是Android Studio编译所必需的 - 在我的电脑上更新Android Studio到最新版本后,我遇到了这个问题。

要解决此问题,请按照以下步骤操作:

在Android Studio中,选择“文件” -> “项目结构” -> “SDKs”(在平台设置下)。
A)如果中间面板中没有JDK / JDK主目录路径,请按“+”符号添加JDK路径(中间面板还包含已下载的Android SDK)。
B)Java SDK通常位于64位路径中/安装在“C:\ Program Files \ Java \ jdk1.X.Y_ABC”(在我的PC上为1.8.0_202),或者32位路径中 =>“C:\ Program Files(x86)\ Java \ jdk1.X.Y_ABC”。
如果您的PC上没有安装JDK,请从Oracle Java网站https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载并安装。
  1. 在系统环境变量中设置JDK和JRE路径(从步骤2中提到的网页下载两者)

    A) 按下Windows键,输入“编辑系统环境变量”并打开应用程序

    B) 转到高级选项 -> 环境变量,在系统变量下添加JAVA_HOME和JRE_HOME如下所示

设置Windows系统环境变量

  1. 在用户变量的Path环境变量中添加jdk lib路径(仅在前面的步骤无法解决错误时才需要执行此步骤) C:\Program Files\Java\jdk1.X.Y_ABC\lib

0

对于Windows系统,将JDK的主目录路径添加到Gradle属性文件中,即org.gradle.java.home。 如果您没有gradle.properties文件,则创建一个新文件并添加以下内容:

例如:org.gradle.java.home=C:\Program Files\Java\jdk1.8.0_241


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接