idea 使用Build Artifacts打包可执行的jar包出现:错误:找不到或无法加载主类 com.xxx.xxx

背景是博主想把在idea下面的项目包括依赖打包进可执行的jar(有很多种方式,maven,ant都行),在网上找了一遍教程,最后觉得直接使用idea打包最快(内网使用maven没有源真的痛苦)。

1、遇到问题

按照网上的方法,一路顺风顺水,配好main方法,配置META-INF路径(这个很重要),完全没有一点错误,顺顺利利把jar打好。你以为这就完事了?you are to simple。打完包后开开心心的在windows上输入cmd召唤出命令行,满怀信心的的敲上java -jar xxxx.jar,然后屏幕就弹出错误:找不到或无法加载主类 com.xxx.xxx。纳尼,突然傻眼了。

2、找问题和解决方案

1、遇到问题第一步想法是是不是某一步弄错了,赶紧回去翻教程,兢兢业业的把每一步重新做了一遍,然而还是一点用都没,网上好多都表示是META-INF的路径弄错了,要放在src目录下,照办了,那个错误还是跳出来嘲笑我。
2、一度没辙,想了一下把jar解压缩,看看是否真的缺类,然后发现那个.class文件就在对应的路径下。好吧。。。
3、找了大半天问题,没有头绪,这时只能找向万能的谷歌或百度了,倒是找到不将依赖包打进jar的方法,还能正常运行。这时我就有不香的鱼干。
4、想起第三步,然后自己在idea建了个简单的项目,下面只有helloword的主类,没有任何依赖,安照步骤1的方法,打包然后执行,正常打印出hello word。emmmmm,这时就怀疑有可能是部分依赖包解压缩后的问题了,然后测试加了部分依赖打包到helloword的jar包,还是能正常运行。
5、知道是部分依赖包解压会导致jar无法执行,但你又不能不用,这就很难受了,这时突然不小心扫了一个博客下面的讨论。这是博客的地址,多谢这位老哥(李志勇)的提示:每次打包后, 将jar包里面的.DSA,.FSA,.SF都删除掉,就可以运行了 (通过winRAR里面删除) ,亲测可用,具体为啥DSA,FSA,SF等会导致找不到主类的博主还在找答案,找到会在下面评论公布。也欢迎各位有经验的老哥指点,谢谢

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值