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