使用IDEA的反编译插件 反编译jar包/class文件/修改jar包 您所在的位置:网站首页 jar包修改过后还需要再编译吗 使用IDEA的反编译插件 反编译jar包/class文件/修改jar包

使用IDEA的反编译插件 反编译jar包/class文件/修改jar包

2023-09-14 08:52| 来源: 网络整理| 查看: 265

反编译插件介绍

安装IDEA后, 一般自带反编译插件, Java Bytecode Decompiler 如果没有可以自己安装下 在这里插入图片描述

1.首先找到插件的jar包, 在IDEA安装目录的plugins文件夹下

比如我的目录是:

E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar

2.运行java命令, 指定插件的jar包目录和你要反编译的jar包目录还有生成反编译后jar包的目录

命令如下:

java -cp “E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar” \ org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true \ D:\maven\respository\xxx\xxx-0.0.1-SNAPSHOT.jar D:\src

E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar 是我的插件目录 D:\maven\respository\xxx\xxx-1.5.0-SNAPSHOT.jar 是我要反编译的jar包 D:\src 是我要生成反编译后jar包的目录

当jre版本低于class文件的版本时会报错

错误信息:

Error: A JNI error has occurred, please check your installation and try again Exception in thread “main” java.lang.UnsupportedClassVersionError: org/jetbrains/java/decompiler/main/decompiler/ConsoleDecompiler has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

class文件版本跟jdk版本对应关系如下

49 = Java 5 50 = Java 6 51 = Java 7 52 = Java 8 53 = Java 9 54 = Java 10 55 = Java 11 56 = Java 12 57 = Java 13 58 = Java 14 59 = Java 15 60 = Java 16

我们可以指定自己安装的高版本JDK来运行, 比如这里我用自己安装的JDK11来运行

E:\JDK\jdk11.0.10\bin\java -cp \ “E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar” \ org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true \ E:\Java_develop\Maven\repository\com\xxx\xxx\0.0.1-SNAPSHOT\xxx.jar D:\src\ 3.可以直接解压jar包

jar包实际就是一个压缩包文件, 比如我们常见的zip/rar 可以直接用压缩工具解压, 也可以把xxx.jar的后缀改成xxx.zip后解压 解压后直接导入IDEA修改, 修改完了再编译打包即可

4.打jar包命令

打jar包命令, 将当前目录文件所有文件或者匹配*.class文件打到jar包中

jar cvf xxx.jar ./

指定manifest文件进行打包

jar cvfm xxx.jar MANIFEST.MF *.class


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有