Java Maven从源代码处安装Hadoop,查找tools.jar的错误路径

Java Maven从源代码处安装Hadoop,查找tools.jar的错误路径,java,maven,hadoop,Java,Maven,Hadoop,我正在尝试使用“mvn干净安装”构建hadoop-2.4.0-src。其中大约一半成功完成,但HDFS项目失败,原因是: 线程“main”java.lang.AssertionError中的异常:缺少tools.jar位于:/Library/java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/Classes/Classes.jar。表达式:file.exists() ../Home/Classes/不存在,tools.jar位于../Ho

我正在尝试使用“mvn干净安装”构建hadoop-2.4.0-src。其中大约一半成功完成,但HDFS项目失败,原因是:

线程“main”java.lang.AssertionError中的异常:缺少tools.jar位于:/Library/java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/Classes/Classes.jar。表达式:file.exists()

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

我已经尝试了这两个建议,从这里接受的答案:

……没有成功。将“dependency”块添加到Hadoop的pom.xml中没有效果,对于第二个建议,我将相关版本号从1.6更改为1.7。我也尝试过类似问题的各种其他建议,但都没有成功

返回我期望的内容:

$ 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比较陌生,所以我很难找出问题的根源所在-是我的本地目录树吗,如
版本的奇怪内容所示?Java是否配置不正确(尽管我已经在Eclipse中使用Java1.7好几个星期了,没有任何问题)?还是Hadoop的pom.xml有问题需要更新


感谢您的帮助。

在我的mac电脑上运行以下程序以解决此问题:

cd /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/ 
sudo mkdir Classes 
cd Classes/ 
sudo ln -s ../jre/lib/rt.jar classes.jar
参考: