jar命令的一次实际使用
最近原同事接了一个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命令的一次实际使用相关推荐
- JAR包及jar命令用法
常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...
- 把java文件打包成.jar (jar命令详解)
把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...
- linux jar命令找不到 -bash: jar: command not found
通过jar命令进行打包或解压包的时候报:-bash: jar: command not found .JDK环境已经安装.[luopu@TESTWEB1_13 ~]$ echo $JAVA_HOME/ ...
- 如何用jar命令对java工程进行打包
如何用jar命令对java工程进行打包 有时候为了更方便快捷的部署和执行Java程序,要把java应用程序打包成一个jar包.而这个基础的操作有时候也很麻烦,为了方便java程序员们能够方便的打包ja ...
- 用jar 命令打包war包
假定有一个Web应用:C:\myHome myHome/WEB-INF/-- myHome/files/-- myHome/image/-- myHome/src/-- myHome/index.js ...
- java打jar包的方式,jar命令,maven
初学java编程,不知道怎么打包,或者说不知道打包的原理,本文来一探究竟 构建软件项目就像是去执行一系列任务,下载依赖,把jar包添加到classpath,把源码编译成字节码,运行测试,打包成为jar ...
- java -jar命令引导启动Springboot项目的那点事
前言:Java官方规定java -jar命令引导的具体启动类必须配置在MANIFEST.MF资源的Main-Class属性中.比如通过java -jar XXX.jar来运行应用时,如不做特殊设置就要 ...
- java jar命令_Java命令行之jar命令
jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar.它的运行需要用到 JDK 安装目录下 lib 目录中 ...
- 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 ...
- Linux下打包压缩war、解压war包和jar命令
环境 RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 + Putty 0.62 问题 Linux下打包压缩war.解压war包和jar命令 解决 把project_a文 ...
最新文章
- C++构造函数(一)
- Linux中利用grep命令如何检索文件内容详解
- asio中奇怪的代码
- Gentoo 安装日记 11 (配置内核 :Module, block layer 和 CPU)
- 算法竞赛入门经典(第二版) | 例题5-4 反片语 (map+标准化)(UVa156,Ananagrams)
- 如何在vmware虚拟机下挂载windows硬盘
- Spring中HibernateTemplate类的使用
- 数据挖掘:如何寻找相关项
- 计算机十进制例子,verilog给你举个最简单的例子:以十进制计算为例:14
- CTF php 序列化,CTF-WEB: php反序列化
- 《老码识途》读书笔记:第一章(中)
- C# Get请求携带body
- 手机等第三方终端访问 WebStorm 页面
- 啊哈C语言 第1章 编程改变思维(第0讲)
- HTML2CANVAS 合成图片
- 【图像上色小综述】生成对抗网络的GAN法
- 如何实现组件之间的通信(父传子,子传父,兄弟组件互传)
- confluence服务守护脚本
- 【6】opencv采用映射技术实现鱼眼镜头校正和鱼眼镜头还原全景图。
- 阿里云操作云服务器ECS,linux系统远程连接
热门文章
- 如何在手机上配置 Python 环境
- DeepSpeed使用指南(简略版)
- 如何提高思维能力,做一个有思想的人
- 华为鸿蒙邀请函,华为鸿蒙系统6月下旬发布?邀请函首次曝光,但未获官方确认...
- JS数组去重及表格操作行数据方法总结
- ProE5.0破面修补修复教程 IGS STP补面
- LeetCode.516 最长回文子序列 详解
- 武汉“精武鸭脖”做法
- 自制html5塔防游戏
- 适合于初学者—软路由全探索系列(三):探索旁路由/软路由 OpenWrt 系统 PassWall 服务应用