Maven搭建hadoop环境报Missing artifact jdk.tools:jdk.tools:jar:1.7(5种办法,2种正解)
刚刚写的那一篇,是网上比较主流的解决办法。
鉴于实际情况,有伙伴的机器上没有遇到这个问题,我们再探究原因,最终还有4种情况需要说明。
先说,另外一种“正解”。
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.0.1.1</version>
<exclusions>
....
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.5.1</version>
<exclusions>
。。。
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
</dependency>
HBase和Hadoop的配置都排除jdk.tooks,之前只是Hadoop那个配置排除了。
其它3种场景或尝试
1.某伙伴的机器上,在没有排除和配置maven的情况下,并没有报错,这个比较奇怪。
2.某伙伴建议配置Java、Maven的Home变量、Classpath、Path,没有卵用。
3.网友建议:http://www.educity.cn/wenda/466544.html,没有卵用。
Eclipse中找不到tools.jar的解决方法
原因:Eclipse默认使用 C:\windows\system32\javaw.exe 作为 JVM,所以找不到tools.jar
解决方法如下:
1、修改 eclipse.exe 目录下的 eclipse.ini,加入
-vm %JAVA_HOME%\bin\javaw.exe
前提是必须在环境变量里定义了JAVA_HOME,如果未定义,则需要写完整的绝对路径。
2、再次启动 eclipse。
3、ok.
(需要说明的是-vm,放在了eclipse.ini的最后一行,Eclipse启动报错,放在第1行正常)
-----------------------
总结:有2种比较好的解决办法,3种特殊情况和尝试。
网上比较主流的那种办法,我们没有采纳,而是用了我们自己发现的,本文中提到的排除jdk.tools这种办法。
说到排除这个问题,我觉得还是POM文件用的不够熟练。
打开POM文件,Depency Hierarchy,搜索tools.jar,手动排除依赖tools.jar,然后就会自动修改pom.xml文件,保存就好了。
Maven搭建hadoop环境报Missing artifact jdk.tools:jdk.tools:jar:1.7(5种办法,2种正解)的更多相关文章
- Maven搭建hadoop环境报Missing artifact jdk.tools:jdk.tools:jar:1.7
今天,更新了工程,报错了. 项目中用了HBase,也有Hadoop相关的jar配置. pom文件, Missing artifact jdk.tools:jdk.tools:jar:1.7 Maven ...
- maven工程pom.xml报Missing artifact net.sf.jasperreports:jasperreports:jar:6.2.0
有时maven工程的pom.xml报以下类型错误: Description Resource Path Location TypeMissing artifact net.sf.jasperrepor ...
- 基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
一.问题来源 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...
- 解决首次在eclipse中使用maven构建hadoop等项目时报Missing artifact sun.jdk:tools:jar:1.5.0的问题
问题原因: eclipse中的maven插件默认没有引用环境变量,所以找不到jdk的路径,也就找不到tool.jar. 解决办法: 步骤如下: 1.关闭eclips 2.在eclipse的解压目录中与 ...
- Maven引入Hadoop依赖报错:Missing artifact jdk.tools:jdk.tools:jar:1.6
Maven引入Hadoop依赖报错:Missing artifact jdk.tools:jdk.tools:jar:1.6 原因是缺少tools.jar的依赖,tools.jar在jdk的安装目录中 ...
- eclipse的maven项目报Missing artifact jdk.toos:jdk.toos:jar:1.6错
很多框架都会依赖jdk中的tools.jar,但是maven仓库中却没有. 如在eclipse+maven编写mapreduce代码,就会报Missing artifact jdk.toos:jdk. ...
- 关于导入本地maven项目pom.xml出现missing artifact org....报错处理
一.导入本地maven项目步骤:
- maven 加入json-lib.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...
- Missing artifact net.sf.json-lib:json-lib:jar:2.4错误和Eclipse安装Maven插件错误
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.配置Maven项目的pom.xml文件报错 (1).错误描述:Missing artifac ...
随机推荐
- 面对即将终止支持的server你还能做些什么
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- 《机器学习系统设计》之应用scikit-learn做文本分类(上)
前言: 本系列是在作者学习<机器学习系统设计>([美] WilliRichert)过程中的思考与实践,全书通过Python从数据处理.到特征project,再到模型选择,把机器学习解决这个 ...
- BZOJ 1066 Dinic
思路: 网络流 建边比较麻烦 //By SiriusRen #include <queue> #include <cstdio> #include <cstring> ...
- BZOJ 1050 枚举+并查集
思路: 枚举最大边 像Kruskal一样加边 每回更新一下 就搞定了- //By SiriusRen #include <cstdio> #include <cstring> ...
- Zookeeper的单节点集群详细启动步骤
这个很简单,见如下博客. 1 week110的zookeeper的安装 + zookeeper提供少量数据的存储 [hadoop@weekend110 zookeeper-3.4.6]$ pwd/ho ...
- Web API总结
1.Web API 控制器(Controller) 继承ApiController 2. Api 的 Url Map: api/{controller}/{id} 每个"Action&quo ...
- java.beans.PropertyChangeListener
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.P ...
- Alternating Sum
http://codeforces.com/problemset/problem/963/A 不考虑正负的话,每两项之间之间公比为b/a,考虑正负,则把k段作为循环节,循环节育循环节之间公比为(b/a ...
- 大吉大利,晚饭吃鸡!——accept关闭问题
假期收尾了,学芽子们都军训了.一群张一山和周冬雨在校内晃晃悠悠,说起来春风十里也就军训比较有意思.对于我这种一年追一部剧的人,显然是有点对不住.在我假期任务即将圆满之际,我开始放慢脚步寻找生活的美妙时 ...
- 实例讲解Nginx下的rewrite规则 来源:Linux社区
一.正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* ...