最近原同事接了一个java的运维支持事项,对方采用spring boot打包,最终在服务器上提供了可执行的jar包运行。由于种种原因,服务器必须进行重做,但更新完成之后发现jar包无法正常执行,最终基于日志分析是api包中使用了sslv3协议去获取企业微信支持功能。而当前微信开放的协议不支持sslv3,并且已经定位到sslv3是在叫底层的api包中已经封装死了。

手上的源码分析确实是是写死了sslv3,但怎么去更新呢?

为了让整个运行项目影响降低到最小。最优方案是只更新协议确认class,其他不进行操作。

根据手上的资源,sslv3调整时是简单的,怎么让调整的class文件放入spring boot 包中成为了难点。

如果是jar的class文件,确实可以使用类似360压缩等工具去更新。但如果是spring boot打包的可执行文件,这种方案就不奏效了。怎么处理呢?

jar的本质是一个zip压缩格式文件,只是在文件的头部修改了文件魔法值,使用jar命令进行打包本质上与zip文件压缩类似。

当我们把原有可执行jar进行解压后,能获取到一个较为标准的spring boot文件目录。把lib中的底层sslv3协议的jar包更新后,执行文件打包命令就可以获取到一个新的jar包。

第一次执行jar -cvf xxxx.jar * ,文件确实正常打包了。更新Manifest文件后,执行java -jar xxxx.jar 启动时,发现新jar内置的jar包无法正常解析。

怎么处理呢?

经过异常分析,jar如果内置了jar文件,打包时不能启动压缩方案。

最终使用 jar -cvf0 xxxxx.jar * 重选打包,更新完Manifest文件后,执行就正常了

jar命令的一次实际使用相关推荐

  1. JAR包及jar命令用法

    常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...

  2. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

  3. linux jar命令找不到 -bash: jar: command not found

    通过jar命令进行打包或解压包的时候报:-bash: jar: command not found .JDK环境已经安装.[luopu@TESTWEB1_13 ~]$ echo $JAVA_HOME/ ...

  4. 如何用jar命令对java工程进行打包

    如何用jar命令对java工程进行打包 有时候为了更方便快捷的部署和执行Java程序,要把java应用程序打包成一个jar包.而这个基础的操作有时候也很麻烦,为了方便java程序员们能够方便的打包ja ...

  5. 用jar 命令打包war包

    假定有一个Web应用:C:\myHome myHome/WEB-INF/-- myHome/files/-- myHome/image/-- myHome/src/-- myHome/index.js ...

  6. java打jar包的方式,jar命令,maven

    初学java编程,不知道怎么打包,或者说不知道打包的原理,本文来一探究竟 构建软件项目就像是去执行一系列任务,下载依赖,把jar包添加到classpath,把源码编译成字节码,运行测试,打包成为jar ...

  7. java -jar命令引导启动Springboot项目的那点事

    前言:Java官方规定java -jar命令引导的具体启动类必须配置在MANIFEST.MF资源的Main-Class属性中.比如通过java -jar XXX.jar来运行应用时,如不做特殊设置就要 ...

  8. java jar命令_Java命令行之jar命令

    jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar.它的运行需要用到 JDK 安装目录下 lib 目录中 ...

  9. Java:Linux上java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案

    Java:Linux上java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案 参考文章: (1)Java:L ...

  10. Linux下打包压缩war、解压war包和jar命令

    环境 RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 + Putty 0.62 问题 Linux下打包压缩war.解压war包和jar命令 解决 把project_a文 ...

最新文章

  1. C++构造函数(一)
  2. Linux中利用grep命令如何检索文件内容详解
  3. asio中奇怪的代码
  4. Gentoo 安装日记 11 (配置内核 :Module, block layer 和 CPU)
  5. 算法竞赛入门经典(第二版) | 例题5-4 反片语 (map+标准化)(UVa156,Ananagrams)
  6. 如何在vmware虚拟机下挂载windows硬盘
  7. Spring中HibernateTemplate类的使用
  8. 数据挖掘:如何寻找相关项
  9. 计算机十进制例子,verilog给你举个最简单的例子:以十进制计算为例:14
  10. CTF php 序列化,CTF-WEB: php反序列化
  11. 《老码识途》读书笔记:第一章(中)
  12. C# Get请求携带body
  13. 手机等第三方终端访问 WebStorm 页面
  14. 啊哈C语言 第1章 编程改变思维(第0讲)
  15. HTML2CANVAS 合成图片
  16. 【图像上色小综述】生成对抗网络的GAN法
  17. 如何实现组件之间的通信(父传子,子传父,兄弟组件互传)
  18. confluence服务守护脚本
  19. 【6】opencv采用映射技术实现鱼眼镜头校正和鱼眼镜头还原全景图。
  20. 阿里云操作云服务器ECS,linux系统远程连接

热门文章

  1. 如何在手机上配置 Python 环境
  2. DeepSpeed使用指南(简略版)
  3. 如何提高思维能力,做一个有思想的人
  4. 华为鸿蒙邀请函,华为鸿蒙系统6月下旬发布?邀请函首次曝光,但未获官方确认...
  5. JS数组去重及表格操作行数据方法总结
  6. ProE5.0破面修补修复教程 IGS STP补面
  7. LeetCode.516 最长回文子序列 详解
  8. 武汉“精武鸭脖”做法
  9. 自制html5塔防游戏
  10. 适合于初学者—软路由全探索系列(三):探索旁路由/软路由 OpenWrt 系统 PassWall 服务应用