idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner

问题描述:

  使用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

idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner_第1张图片

4 运行时的configuration问题,idea中,打开run--> edit configuration

idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner_第2张图片

5 我自己经过排查上述四个问题的原因都不是,而是第三方jar包的scope设置问题。(听起来不可思议,但是确实是这个问题,在idea中有这个问题,在eclipse没有这个问题

场景描述:我是在window本地运行的hadoop 的map reduce示例,引用了第三方jar包:hadoop-client。(注:不是在伪集群,也不是集群上跑的),当我将该jar包的编译范围设置为scope时,点击运行,就会报找不到主类的错误。示意图如下:

pom文件:

                       idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner_第3张图片

报错:

idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner_第4张图片

解决方案:将scope 的值设置为compile,即可正常运行,示意图如下:

idea运行map Reduce 时报:错误: 找不到或无法加载主类 com.hnxy.bin.JobRunner_第5张图片

注:这样确实解决了运行时找不到主类的问题,但是带来的一个新的问题:就是在maven 打包的时候,会将该第三方jar包打进包中,所以,我采取的办法:运行时,设置为compile,打包时再将scope设置为provided。

     参考博客:https://www.cnblogs.com/gzshan/p/10861457.html

你可能感兴趣的:(Idea和Eclipse,大数据)