使用JD-GUI编译jar中的class文件,重新打包发布

使用JD-GUI编译jar中的class文件,重新打包发布
下载JD-GUI

下载安装JD-GUI:http://java-decompiler.github.io/

启动app踩坑

报错原因:app启动脚本不符合当前操作系统的指令规范,详情如下:

如果你的电脑是mac的高版本可能会遇到如下bug:

ERROR launching 'JD-GUI'

No suitable Java version found on your system!
This program requires Java 1.8+
Make sure you install the required Java version.

上述问题是由于当 JD-GUI 执行启动脚本universalJavaApplicationStub.sh过程中,需要确定要使用的 Java 版本信息来安装。在启动脚本调用操作系统API执行如下指令:

/usr/libexec/java_home -F -v 1.8+

查找jdk版本信息的时候,系统返回会报错:这是由于这个指令不符合当前操作系统的指令规范

我们需要替换或者修改 JD-GUI 程序里的启动脚本解决上述问题,参考步骤如下:

  1. 先将下载下来的 jd-gui-osx-1.6.6.tar 解压,然后将 JD-GUI.app 文件拷贝到 Applications 目录下

  2. 右键点击app:改动 Contents/MacOS/universalJavaApplicationStub.sh文件
    在这里插入图片描述

  3. 改动universalJavaApplicationStub.sh文件:改动后的代码后如下:

    /usr/libexec/java_home -F -v ${JVMVersion}
    

    直接通过获取的操作系统的jdk版本的环境变量,执行脚本解决问题,具体操作如下:将 Contents/MacOS/universalJavaApplicationStub.sh 文件的内容替换为 https://github.com/tofi86/universalJavaApplicationStub/blob/v3.2.0/src/universalJavaApplicationStub 中的内容然后保存,重新启动app。

反编译JAR
  1. 打开jar包文件,或者解压文件:

    jar xf test.jar
    

在这里插入图片描述

  1. 指定.class文件使用command/control + s保存文件成.java文件

  2. 修改.java文件,然后使用javac指令编译.java文件成.class文件

    javac test.java
    
  3. 使用jar命令将jar包中的.class文件替换成指定的class文件

    jar -uf demo-api-1.1.0.jar org/springframework/boot/loader/util/test.class
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值