从源代码安装Hadoop的Maven,寻找tools.jar工具包路径错误。

4

我正在尝试使用'mvn clean install'构建hadoop-2.4.0-src,其中大约有一半成功完成,但是然后HDFS项目失败并出现以下错误:

Exception in thread "main" java.lang.AssertionError: Missing tools.jar at: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/Classes/classes.jar. Expression: file.exists()

......../Home/Classes/不存在,而tools.jar在......../Home/lib中。我的$JAVA_HOME环境变量肯定正确设置了,并且错误消息中列出的JDK也是正确的 - 它只是在该路径内查找错误的位置。我看到一些帖子说一个常见问题是人们使用JRE而不是JDK,但我确定我的是JDK。

我尝试过这里接受的答案的两个建议:

Buiding Hadoop with Eclipse / Maven - Missing artifact jdk.tools:jdk.tools:jar:1.6

对于Hadoop的pom.xml添加'dependency'块没有效果,对于第二个建议,我将相关版本号从1.6更改为1.7。 我还尝试了类似问题的其他建议,但没有成功。

which返回我期望的结果:

$ which javac
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/javac

然而,JavaVM.framework/Versions 的内容对我来说似乎有些奇怪,因为它似乎没有列出1.7版本:

/System/Library/Frameworks/JavaVM.framework/Versions $ ls -al
total 64
drwxr-xr-x  11 root  wheel  374 May 10 11:05 ./
drwxr-xr-x  12 root  wheel  408 May 10 11:05 ../
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.4@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.4.2@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.5@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.5.0@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.6@ -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 May 10 11:05 1.6.0@ -> CurrentJDK
drwxr-xr-x   8 root  wheel  272 May 10 11:05 A/
lrwxr-xr-x   1 root  wheel    1 May 10 11:05 Current@ -> A
lrwxr-xr-x   1 root  wheel   59 May 10 11:05 CurrentJDK@ -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

我对Java还比较陌生,所以我很难确定问题的根源 - 是我的本地目录结构有问题吗?就像Versions文件夹中奇怪的内容一样?还是Java配置不正确(尽管我已经在Eclipse中使用Java 1.7几个星期了,没有出现任何问题)?还是需要更新Hadoop的pom.xml文件?

非常感谢您的帮助。

1个回答

12

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