Ant需要tools.jar并且无法find它

我正在为Java程序放置一个开发环境,并在我的Ant构build脚本的第一次尝试后,我得到了这个错误:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk/lib/tools.jar 

虽然jdk的path是正确的,但tools.jar确实不在那里。 它实际上应该在那里,或者我得到一些configuration/安装的东西是错的?

它在我的机器上 我在Windows XP SP3上运行Sun JDK 1.6.0_21。

你确定你有JDK吗? 是否有可能只有JRE?

看起来你可以在/ usr / lib / jvm / java-6-openjdk中安装Java,但只有JR​​E,而不是JDK。 这对我来说是固定的:

sudo apt-get install openjdk-6-jdk

注意:在CentOS / RHEL上安装java-1.x.0-openjdk是不够的。 同时安装java-1.x.0-openjdk-devel

尝试以下操作:

%sudo apt-get install sun-java6-jdk

%sudo update-alternatives –config java

select具有该path的选项

/ usr / lib中/ JVM / JAVA -6-太阳/ JRE / bin中/ JAVA

在Ubuntu 10.4上为我工作

你可以尝试把你的JAVA_HOME也如下所示:

%sudo export JAVA_HOME = $(readlink -f / usr / bin / javac | sed“s:/ bin / javac ::”)

在Ubuntu上,我需要安装JDK sudo apt-get install openjdk-7-jdk

通过unzip安装jdk-6u45-linux-x64.bin(来自oracle.com站点)不会产生tools.jar。 我猜这个文件是由“make-jpkg”脚本创build的。 一旦我做到了,并安装了.deb文件,一切都很好。 我真的讨厌甲骨文的律师。

在Debian上,使用apt-get install ant安装Ant之后,运行它时遇到了同样的错误:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk-amd64/lib/tools.jar

事实上,虽然/usr/lib/jvm/java-6-openjdk-amd64本身确实存在,但在/usr/lib的任何位置都没有提到任何tools.jar


https://packages.debian.org/search?searchon=contents&keywords=java-6-openjdk-amd64%2Flib%2Ftools.jar

根据上面的search, java-6-openjdk-amd64/lib/tools.jar似乎是openjdk-6-jdk ,它确实没有与ant一起安装(因为它只被标记为build议( https:/ /packages.debian.org/wheezy/ant ))。

apt-get install openjdk-6-jdk

即使你安装了jdk,你也需要redirectJAVA_HOME来指向它。

这里有一个奇怪的技巧,你可以把你的.profile正确设置JAVA HOME,无论你有哪些Java:

 export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/java))) # Test for jdk installed above jre if [ -x $JAVA_HOME/../bin/java ]; then export JAVA_HOME=$(dirname $JAVA_HOME); fi 

在Ubuntu上,我已经通过安装软件包解决了这个问题

 openjdk-7-jre-lib 

之后出现tools.jar。

(我知道这是一个旧的post,但是希望能对像今天这样的潜在回答有帮助。)