当前位置: 首页 > news >正文

docker容器中运行jar 出现invalid or corrupt jarfile

1,背景:

在本地java开发完毕之后,想要打包成docker镜像,方便安装。由于本地没有docker环境,也懒得装了。有一台测试的linux机器可以使用,所以先在本地打包生成xxx.jar,然后拷贝到有docker环境的linux机器上,生成docker镜像,以及使用镜像做成docker容器。
启动之后,发现报错:

invalid or corrupt jarfile

2,思路

从报错信息来看,容器里面已经有了jar包,但是这个jar包不能执行,被破坏掉了。
这边jar的传递有两步,第一是win10系统到Linux系统,第二是Linux本地拷贝到Docker容器。
1)确认本地的jar是否正常(发现本地启动之后,可以正常跑)->那么win10本地的jar是正常的
2)第二步的拷贝,使用dockerfile拷贝,正常情况下,要么命令错误,没有拷贝到容器的镜像里面->确认了一下容器里面是有jar的,那么这个拷贝大概率没有问题。
3)考虑linux里面的xxx.jar已经有问题了。那么大概率是从本地win10系统到Linux的拷贝出问题。

3,原因


在失败之前,有传输jar,生成docker成功过。突然报错有点奇怪。
后来我想起来文件winscp进行文件传输的时候,传输方式有多种,之前是默认的Default()。中间传输别的文件的时候把这个改成了file(文件),使用file方式传输jar,尝试将这边的传输方式改成default,就能够正常跑了。
至于为什么会有这样的问题,暂时还不是特别清楚,猜测是linux系统和win10系统的换行导致?有知道的童鞋欢迎解释一下。
图片来源:winscp图片

mark一下

http://www.lryc.cn/news/225062.html

相关文章:

  • PHP+MySQL人才招聘小程序系统源码 带完整前端+后端搭建教程
  • MongoDB常用的语句
  • MIPSsim模拟器 使用说明
  • javascript用localStorage存储用户搜索词记录,并在搜索框下展显搜索词记录
  • 20231108在Ubuntu22.04下编译安装cmake-3.27.7.tar.gz
  • 如此理解sed会简单
  • 数据库-MySQL之数据库必知必会1-9章
  • Selenium+Python自动化测试环境搭建
  • k8s存储卷 PV和PVC
  • 【架构】后端项目经典分层架构介绍
  • 二叉树的中序遍历
  • 什么是代理IP池?真实测评IP代理商的IP池是否真实?
  • 接收表单数据
  • 串口通信(11)-CRC校验介绍算法
  • 什么是Java虚拟机(JVM),它的作用是什么?
  • 力扣876:链表的中间结点
  • 三菱FX3U系列—原点回归指令
  • ES常用查询命令
  • 【Qt之元对象系统】
  • 基于FPGA的EMAC模块与FIFO模块:高速数据传输与存储
  • 大数据毕业设计选题推荐-农作物观测站综合监控平台-Hadoop-Spark-Hive
  • 高校教务系统登录页面JS分析——长沙理工大学教务系统
  • element-ui的form校验失败
  • java数据结构--阻塞队列
  • 使用p2p实现Linux内网快速分发文件
  • Android Studio报错:connect refused
  • ubuntu 源码编译安装make过程很慢问题解决
  • 深度学习 opencv python 实现中国交通标志识别 计算机竞赛
  • 希尔排序原理
  • 测试用例的设计方法(全):判定表驱动分析方法