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

windows下运行springboot的jar包,修改替换class文件,修改配置文件application,打包

在windows下跑springboot的jar包,经常会用到一些命令行和操作。

1、修改配置文件(以application.yml为例)

#提取文件
jar xvf mqtt-10.1.0.jar BOOT-INF/classes/application.yml#将文件装回jar包
jar uvf mqtt-10.1.0.jar BOOT-INF/classes/application.yml

执行了提取文件命令,不光会把文件提取,文件夹也会提取出来。

修改完以后,再把该文件装回去。

2、修改class文件

这个比较麻烦。通常场景都是远程登录堡垒机,通过堡垒机登录这些windows服务器。这时候,你发现jar包的某个文件的某行代码有bug,需要修改。

2.1 简单的情况:

有idea,有jar包的源码文件。

如果在服务器上有idea那就好办了,或者在其中一台服务器上有idea。步骤如下:

1) 在源码文件上修改

2) 使用idea的maven打包(lifecycle下install)

3) 将打包好的jar包复制到有bug的那个jar包目录下(打包好的jar包的位置在idea控制台的maven日志有显示)

4) 是用上面的命令提取class文件,替换class文件

例如:有bug的jar包名为mqtt-10.1.0.jar,刚打包好的jar包名为mqtt-0.0.1-SNAPSHOT.jar,提取mqtt-0.0.1-SNAPSHOT.jar的class文件,装进mqtt-10.1.0.jar里。命令如下:

例如有bug的文件是 com.ali.service.iml.xxxServiceImpl.class

#提取文件
jar xvf mqtt-0.0.1-SNAPSHOT.jar BOOT-INF/classes/com/ali/service/iml/xxxServiceImpl.class#将文件装回jar包
jar uvf mqtt-10.1.0.jar BOOT-INF/classes/com/ali/service/iml/xxxServiceImpl.class

2.2 复杂情况

没有idea,没有jar包的源码文件。

需要先下载个jd-gui,看看class文件在这个jar包的哪个目录下。

在自己电脑上用idea创建个springboot项目,创建该文件所在目录的相同名字的目录。在jd-gui里将这个class文件的代码复制出来。(但要注意,匿名内部类jd-gui无法解析。若有匿名内部类,可以直接将这个class文件使用idea解析)。这时候这个文件还是报错状态,因为很多引用的类还没有。

将有bug的jar包作为lib包引入。这时候就不会报错了。

这就是创建同样名字的目录和文件的目的:目录一样,引用的类就能保持同样的包名。这也是为了打包出来的class文件里package名字一样。

打包完以后,新旧jar包放在同一个目录下,就可以使用上面的命令,替换class文件了。

之所以这样做,因为没法对单独的文件使用javac,因为这个文件引用了很多其他类。

参考:

修改jar包中class文件_修改jar中的class文件_七朵儿花儿的博客-CSDN博客

windows自启动

1. 启动文件夹(Startup Folder): - 按下Win + R键打开“运行”对话框。 - 输入 shell:startup 并点击“确定”按钮,这将打开Windows的启动文件夹。 - 将要自动启动的程序的快捷方式或可执行文件复制到启动文件夹中。

2. 任务计划程序(Task Scheduler): - 打开“任务计划程序”(可以在开始菜单中搜索)。 - 在左侧导航窗格中,选择“创建基本任务”或“创建任务”选项。 - 按照向导的指示设置任务的名称、触发器(选择“启动时”或“登录时”)和操作(指定要运行的程序或脚本)。 - 完成设置后,任务将在系统启动时自动运行。

3. 注册表编辑器(Registry Editor): - 按下Win + R键打开“运行”对话框。 - 输入 regedit 并点击“确定”按钮,这将打开注册表编辑器。 - 导航到以下注册表路径: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (仅对当前用户)或 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (对所有用户)。 - 在右侧窗格中,右键单击空白处,选择“新建” > “字符串值”。 - 设置新字符串值的名称,例如“MyProgram”。 - 双击新字符串值,将其值设置为要自动启动的程序的路径。

 

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

相关文章:

  • PMD 检查java代码:可以去掉无用的括号(UselessParentheses)
  • 【数据结构练习】栈的面试题集锦
  • 简单工厂模式概述和使用
  • 软件工程概述
  • 国际网页短信软件平台搭建定制接口说明|移讯云短信系统
  • Java“牵手”阿里巴巴店铺所有商品API接口数据,通过店铺ID获取整店商品详情数据,阿里巴巴店铺所有商品API申请指南
  • 【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值
  • docker基本命令记录
  • web之利用延迟实现复杂动画、animation
  • TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?
  • 鼠标悬停阴影的效果被旁边div挡住的解决办法
  • Go用两个协程交替打印100以内的奇偶数
  • css 文字单行多行超出长度后显示 ...
  • C++将派生类赋值给基类
  • 海外问卷调查是做什么的?
  • Redis——数据结构介绍
  • 附录2-将三国演义按章节存储为不同的txt(bs4)
  • 现代C++中的从头开始深度学习:【6/8】成本函数
  • Vue——vue3中的ref和reactive数据理解以及父子组件之间props传递的数据
  • 新手如何备考PMP考试?
  • FPGA输出lvds信号点亮液晶屏
  • 算法面试-深度学习基础面试题整理(2023.8.29开始,每天下午持续更新....)
  • FireFox禁用HTTP2
  • 搭建HTTPS服务器
  • 无人化在线静电监控系统的组成
  • element ui级联选择器数据处理
  • zookeeper-3.6.4集群搭建
  • 15种下载文件的方法文件下载方法汇总超大文件下载
  • Windows安装配置Rust(附CLion配置与运行)
  • 【ROS】例说mapserver静态地图参数(对照Rviz、Gazebo环境)