您的位置:首页 > 文旅 > 旅游 > Linux运行jar包:Invalid or corrupt jarfile

Linux运行jar包:Invalid or corrupt jarfile

2025/2/23 22:29:46 来源:https://blog.csdn.net/qq_45502195/article/details/139938292  浏览:    关键词:Linux运行jar包:Invalid or corrupt jarfile

你们好,我是金金金。

image.png

场景

  • maven打包springboot项目得到一个jar包,我通过xshell上传到虚拟机环境里面,试图运行它,结果Invalid or corrupt jarfile:jar 文件无效或损坏

image.png

排查

  1. jdk版本是否一致?结果:是一致的。我本地也是8
    image.png
  2. 起初还以为是DockerFile文件写错的问题,在这上面浪费了不少时间,各种试错
  3. 也排查了是不是运行的jar路径不对?结论:路径是对的。
  4. 百度搜 传输过程中jar包丢失数据也会引起相关问题,换了好多个工具分别上传,结论还是一样
    image.png
  5. 排查权限是不是不够?结论:权限我手动全打开还是一样。
    image.png
  6. 是不是磁盘空间不足?结论:已排查,有空间 完全满足。

解决

在使用maven对项目 打包(idea执行maven的生命周期package即可)好后,我们再一次进行对jar的压缩,执行如下命令:

jar cvf hm.jar hm-service.jar

hm.jar 压缩后的新文件,hm-service.jar 是你需要压缩的jar

image.png

  • 此时得到一个新文件,我们把这个新的jar传入虚拟机

image.png

  • 好,我们已经看到了这个hm.jar包,,我们来运行一下试试,,

image.png

  • 纳尼,咋又报错了,,莫慌,问题不大,你在外面是不是用命令压缩了一层,我们在虚拟机当中使用unzip命令解压一下(unzip命令需要安装的,不然会提示没这个命令的)

image.png

image.png

  • 我们选择 y

image.png

  • 此时我们可以看到,里面的hm-service.jar出现了。我们再次运行一下!

测试

  • 运行 java -jar hm-service.jar,出现如下代表成功

image.png

总结

不知道到底为什么!也问了很多小伙伴,他们说直接把jar放入虚拟机就可以使用,我这却不可以!只要先用命令压缩一层放入虚拟机再手动解压一下了!还好解决了~可能是因为直接拖入进去文件丢失了?按道理也不应该啊,排查问题我也看了两个文件的hash值是一样的!有知道的大佬可以评论区告诉小弟为啥 ~

  • 编写有误还请大佬指正,万分感谢。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com