Make无法找到tools.jar文件

9

运行Ubuntu 12.04

我已将以下路径添加到PATH:/home/jeffrey/jdk1.6.0_43/lib

我正在尝试使用Make从源代码进行构建:

make -j16

但是遇到了错误:
build/core/config.mk:268: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com.  Stop.

有人能解释一下为什么Make找不到tools.jar吗?
编辑:
JAVA_HOME=/home/jeffrey/jdk1.6.0_43/bin/java

通过在shell中输入env命令来确定。此外,这适用于/etc/profile中的所有用户。
另外:
jeffrey@jeffrey-Satellite-M645:~/WORKING_DIRECTORY$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
jeffrey@jeffrey-Satellite-M645:~/WORKING_DIRECTORY$ 

1
你想要做什么?Makefile 可能会假定可以使用 JAVA_HOME 环境变量或类似的东西找到 JDK,它不会尝试在 PATH 中搜索 tools.jar。 - Joni
你不需要将JAVA_HOME指向二进制文件,而是应该指向Java安装的顶级路径。相反,你需要将PATH指向二进制文件所在的位置(但不是二进制文件本身),而不是Java安装的顶级目录。 - Etan Reisner
根据@EtanReisner的评论,我更改为JAVA_HOME=/home/jeffrey/jdk1.6.0_43。注销/登录 - 仍然无法找到tools.jar。 - Roy Hinkley
仅仅在makefile或者是/etc/profile文件中设置一个变量是不够的;那样只是为了本地进程(例如make或者shell)设置变量。你必须要使用 export 命令,否则这个值将不会传递给任何由make或者shell调用的命令(例如java)。尝试向你的makefile和/或/etc/profile添加 export JAVA_HOME 命令。 - MadScientist
1
我还应该补充一点:每当尝试调试此类问题时,您应该始终首先从 shell 命令提示符中调用命令以使其正常工作。如果您自己无法正确运行它,那么您如何指望 make 能够这样做呢?相反,如果您可以运行它但是“make”不能,则说明问题出在您将命令转换为 makefile 上。 - MadScientist
显示剩余2条评论
3个回答

13

ANDROID_JAVA_HOME 环境变量设置为 JDK 路径,可以解决此错误。

我在 这篇 SO 帖子 中找到了答案。


如果你一开始就说你在尝试构建一个Android环境,或者在你的问题中使用了“android”标签,那么你可能会得到更多相关的建议。鉴于你的问题和标签,每个人都认为你正在尝试构建一个通用的Java程序。 - MadScientist
@MadScientist 我现在看来这很明显,但我不想在问题中加入我认为是无关紧要的信息。对于每种情况,放多少信息到一个问题中是一个难题。 - Roy Hinkley

1

请确保JAVA_HOME环境变量已设置为jdk-install-dir


0
通常,这是由于 javac 没有配置为系统的替代品导致的。所以 /usr/bin/javac 中没有与您的 javac 相关联的链接。
请使用以下命令设置 javac 的替代品:
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_32/bin/javac" 1

注意:我的javac安装目录是“/usr/lib/jvm/jdk1.6.0_32/”,您可以根据自己的配置进行更改。


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