idea运行map Reduce 时报:错误: 找不到或无法加载主类
问题描述:
使用idea编辑器,使用maven构建hadoop的mapreduce项目,在运行的时候提示报错:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner
错误排查:
1 可能是java的环境变量错误
解决方案:查看java的环境变量是否 正确
2 可能是未能成功编译:
解决方案: 菜单---》Build---》Rebuild Prodject
3 缓存问题
解决方案:菜单---》File---》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后Rebuild Project
4 运行时的configuration问题,idea中,打开run--> edit configuration
5 我自己经过排查上述四个问题的原因都不是,而是第三方jar包的scope设置问题。(听起来不可思议,但是确实是这个问题,在idea中有这个问题,在eclipse没有这个问题)
场景描述:我是在window本地运行的hadoop 的map reduce示例,引用了第三方jar包:hadoop-client。(注:不是在伪集群,也不是集群上跑的),当我将该jar包的编译范围设置为scope时,点击运行,就会报找不到主类的错误。示意图如下:
pom文件:
报错:
解决方案:将scope 的值设置为compile,即可正常运行,示意图如下:
注:这样确实解决了运行时找不到主类的问题,但是带来的一个新的问题:就是在maven 打包的时候,会将该第三方jar包打进包中,所以,我采取的办法:运行时,设置为compile,打包时再将scope设置为provided。
参考博客:https://www.cnblogs.com/gzshan/p/10861457.html