Linux运行jar包:Invalid or corrupt jarfile
金金金__ 2024-10-04 17:37:00 阅读 73
你们好,我是金金金。
场景
<code>maven打包springboot
项目得到一个jar
包,我通过xshell
上传到虚拟机环境里面,试图运行它,结果Invalid or corrupt jarfile:jar 文件无效或损坏
排查
jdk版本是否一致?结果:是一致的。我本地也是8
起初还以为是 <code>DockerFile文件写错的问题,在这上面浪费了不少时间,各种试错也排查了是不是运行的
jar
路径不对?结论:路径是对的。百度搜 传输过程中jar包丢失数据也会引起相关问题,换了好多个工具分别上传,结论还是一样
排查权限是不是不够?结论:权限我手动全打开还是一样。
是不是磁盘空间不足?结论:已排查,有空间 完全满足。
解决
在使用<code>maven对项目 打包(
idea
执行maven
的生命周期package
即可)好后,我们再一次进行对jar
的压缩,执行如下命令:
jar cvf hm.jar hm-service.jar
hm.jar
压缩后的新文件,hm-service.jar
是你需要压缩的jar
此时得到一个新文件,我们把这个新的<code>jar传入虚拟机
好,我们已经看到了这个<code>hm.jar包,,我们来运行一下试试,,
纳尼,咋又报错了,,莫慌,问题不大,你在外面是不是用命令压缩了一层,我们在虚拟机当中使用<code>unzip命令解压一下(unzip
命令需要安装的,不然会提示没这个命令的)
我们选择 y
此时我们可以看到,里面的hm-service.jar出现了。我们再次运行一下!
测试
运行 <code>java -jar hm-service.jar,出现如下代表成功
总结
不知道到底为什么!也问了很多小伙伴,他们说直接把<code>jar放入虚拟机就可以使用,我这却不可以!只要先用命令压缩一层放入虚拟机再手动解压一下了!还好解决了~可能是因为直接拖入进去文件丢失了?按道理也不应该啊,排查问题我也看了两个文件的
hash
值是一样的!有知道的大佬可以评论区告诉小弟为啥 ~
编写有误还请大佬指正,万分感谢。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。