精华内容
下载资源
问答
  • 修改jar包中class文件的内容

    千次阅读 2020-08-06 17:19:43
    4、把新的class文件,替换jar包中的旧class文件,就可以了。 实际演示 例如:我想要修改mysql驱动包mysql-connector-java-6.0.6.jar中maxAllowPacket的默认值。 1、使用jad打开jar包,先找到class文件...

    过程

    1、打开jar包,反编译class文件

    2、新建一个java文件,把反编译的内容复制过去(或是直接导出java文件)。

    3、修改内容后,使用javac -cp命令重新编译成class文件

    4、把新的class文件,替换jar包中的旧class文件,就可以了。

    实际演示

    例如:我想要修改mysql驱动包mysql-connector-java-6.0.6.jar中maxAllowPacket的默认值。

    1、使用jad打开jar包,先找到class文件PropertyDefinitions

    2、创建一个PropertyDefinitions.java文件,把反编译的内容复制过来,把65535修改成65535000,保存。

    3、使用javac -cp命令把PropertyDefinitions.java文件编译成class文件

    说明:java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,windows用分号;Linux、mac用冒号:

    注意1:如果报错则还要添加其他依赖包。java -cp .:mysql-connector-java-6.0.6.jar:xxx.jar:xxx2.jar PropertyDefinitions.java

    注意2:要使用和jar包相同版本的jdk来编译,如不清楚,可以使用javap -verbose xxx.class 来查看,如下图:

    JDK版本和Java编译器内部的版本号如下:

    J2SE 8 = 52,
    J2SE 7 = 51,
    J2SE 6 = 50,
    J2SE 5 = 49,
    J2SE 4 = 48,

    4、使用压缩软件打开jar包,把上面编译好的class文件,拖入jar包中覆盖旧的class文件,保存。

    5、再次用jad反编译jar包,检查一下是否修改成功

     

    展开全文
  • 2.最关键的一步,在项目中,创建一个跟jar包中有问题的类完全相同的包路径和类名,然后,把反编译的有问题的java文件copy到这里。此时,新建的这个类就覆盖了jar包中的类。然后在这个类里修改代码即可。

    背景

    拿到一个项目,要修改bug。费了九牛二虎之力,把项目跑起来了,登录的时候,居然报空指针。看控制台报错,报错的代码是一个jar包,即这个项目把登录功能封装成了jar包。但是没有这个jar包的源码包,如何解决jar包里的空指针问题呢?

    解决方案

    1.用反编译软件,先把有问题的jar包搞成java文件。
    2.最关键的一步,在项目中,创建一个跟jar包中有问题的类完全相同的包路径和类名,然后,把反编译的有问题的java文件copy到这里。此时,新建的这个类就覆盖了jar包中的类。然后在这个类里修改代码即可。
    3.此步骤可有可无,把修改好的代码发布到tomcat里,然后这个文件对应的class文件替换到jar包里,此时,就完成了对jar包中class文件的修改。

    展开全文
  • 修改jar包中class文件

    千次阅读 2020-04-02 00:29:22
    需求:银行跑批任务执行时要调用行方自己的短信平台给科技部人员发送短信,行方提供一个jar文件,通过shell脚本传参调用即可。...修改文件内容—>重新编译—>将原来jar包解压—>替换class文件—&g...

    需求:银行跑批任务执行时要调用行方自己的短信平台给科技部人员发送短信,行方提供一个jar文件,通过shell脚本传参调用即可。

    问题点:shell脚本调用jar包没太大问题,关键在于,需要在jar包中的某个类中配置短信平台的用户名、密码。

    解决方案:将jar反编译—>保存为.java文件—>修改文件内容—>重新编译—>将原来jar包解压—>替换class文件—>压缩为jar包。


    是时候表演真正的技术啦!


    首先,看一下我的msg.jar包的结构,直接解压是这样式的~

    我要修改的代码就是这个T.class,但是class文件没办法直接修改

    所以我们需要反编译工具,我使用的是jd-gui。

    链接:https://pan.baidu.com/s/1qP4N8Uvss8lRbWp_1h91Fg 
    提取码:i6mk

    打开后:

    反编译还是没办法直接修改的,Ctrl+S将其保存为.java文件

    保存之后就可以通过编辑工具进行修改了,因为我的这个类是依赖了其他很多类的,修改完直接javac编译该文件会报错

    所以,我们要建一个项目,为这个java文件配置相同的目录结构,把这个类所依赖的jar包(其实就是本jar包,但是要先解压,然后把该类的class文件删掉,再压缩为jar文件即可,压缩为jar包的方式见后边)导入,将项目打成jar包,再将jar包解压,将修改的类的class文件拿出来就可以了。

    为了简便,我用idea直接建了一个spring boot项目,

    因为我要改的class文件就在jar包根目录下,所以我直接保存后的java文件放到启动类同目录就行了,如果不是的话,根据class文件所在jar包的目录结构在项目中创建对应目录结构即可。

    这时候,其实是会报错的,因为依赖的很多类都没有,但我已经引入jar包了,所以不会报错。

    引入剔除该class文件的jar包

     

    还有修改一下jdk之类的操作不细说了,pom文件加一下本地jar包依赖、jdk版本、和编译打包的一些依赖配置。

    <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>com.jugan.util</groupId>
                <artifactId>com.jugan.util</artifactId>
                <version>1.0</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/lib/msg.jar</systemPath>
            </dependency>
        </dependencies>
    
        <build>
    
            <resources>
                <resource>
                    <directory>lib</directory>
    <!--                <targetPath>BOOT-INF/lib/</targetPath>-->
                    <includes>
                        <include>F:/workspace/msg/lib/msg.jar</include>
                    </includes>
                </resource>
            </resources>
    
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>

    然后,修改代码

    maven 编译打包

    编译打包成功,去把打好的jar包中的class文件拿出来,替换掉原始jar包中的class文件,

    然后将其压缩为jar包。

    注意,在解压缩的jar包的文件夹里边选中所有文件进行压缩,直接压缩文件夹的话,会多出一层。

    大功告成。

     

     

    展开全文
  • 怎么修改jar包中的源代码中的类

    千次阅读 2021-02-23 18:56:15
    所以如果我们在实际开发中需要修改某个类来完成对应的业务需求,那我们可以打开这个jar包中的这个文件,查看它的包名和类名,然后去我们自己的工程中创建一个相同路径的文件,那么jar包中文件就会被覆盖。...

    根据加载顺序可知,如果我们工程中有自己的和jar中包名类名一样的文件,加载时会默认加载我们自己写的文件,如果我们没写才会去jar包中找。
    所以如果我们在实际开发中需要修改某个类来完成对应的业务需求,那我们可以打开这个jar包中的这个文件,查看它的包名和类名,然后去我们自己的工程中创建一个相同路径的文件,那么jar包中的文件就会被覆盖。就达到我们想要的目的。
    上个示例:
    在这里插入图片描述

    • 我们要修改这个类,那么我们就这么做,它的路径和包名我们已经知道了。
    • 于是:
      在这里插入图片描述
    • 完成!!!
    展开全文
  • 修改jar中配置文件场景描述难点分析几种尝试方法一:vim修改方法二:使用win方法三:先提取后替换方法四:在linux解压后vim修改并重新打包最终方案补充Over! 场景描述 项目已封板,却突然被告知要修改与某平台的...
  • 修改 jar 包中的源码

    2021-08-18 19:25:27
    阅读原文 在写 JavaWeb 项目的时候,需要在注册界面加上验证码功能,使用的是谷歌的 kaptcha-2.32,但在配置时候出现找不到依赖...在 IDEA 中,jar 包中文件都是 read-only(只读模式),而且 jar 包的只读模式是不能更
  • java代码实现修改jar包中的配置文件

    千次阅读 2019-04-29 17:17:01
    使用场景 提供SDK给业务系统,需要给各个不同的业务系统设置不同的配置 ...实现代码 包含 JarTool类与StringReplace方法接口 @FunctionalInterface public interface StringReplace { String p...
  • 修改jar包中class文件并重新打包 步骤: 1、使用jd-gui查看jar文件或者把jar文件放到AndroidStudio中查看需要修改的X.class文件代码,复制出代码,在AndroidStudio中新建同名的X.java文件(新建javaLibModule),...
  • 首先jar打开-选用反编译工具jd.gui打开。 这时会加载出该jar包所以的包结构。如下: 下一步:点击 file-save all sources 这样就能转成java文件。...jar包中的pom文件的依赖全部copy到新建的项目的pom中。这样m...
  • 修改jar包中文件

    2018-07-29 11:42:00
    jar -tvf abc.jar【待查看的文件 2、解压jar中文件 jar -xvf abc.jar a/b/c【指定待解压的jar中目录,不指定默认解压整个jar包】 3、更新jar中文件 jar -uvf agc.jar a/b/c  ·1 文件夹a与agc.jar在同级...
  • 如何修改Jar包中的class文件源码具体步骤概述:要使用的工具:具体步骤: 概述: 在很多情况下,我们可能会需要修改别人jar包中的class文件,网上有很多种办法,而且都比较零散,这里给出一个较完整的步骤,并且...
  • 修改第三方jar包中的功能实现。
  • java实现:对jar包中的配置文件修改

    千次阅读 2018-11-20 09:03:54
    注:只修改文件,其他会被清空  package com.mtpc.admin.util; import java.io.*; import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; ...
  • 如何修改jar包中的class文件

    千次阅读 2018-01-17 22:20:40
    有时候我们会面临着查看及修改jar包中.class文件的内容,如何操作请看下文:查看jar包的内容: 这个可以使用jd-gui、luyten反编译得到源码xxx.java,方便看到整个jar包的结构。另外,使用jar命令可以将jar包解压...
  • 但在 IDEA 中,jar 包中文件都是 read-only(只读模式)。那如何才能修改 jar 包中的源码呢? 下载 jar 包源码。如果无法获得源码,需要用反编译工具反编译。 找到 jar 中你想要修改的类,在自己的工程目录下,创建...
  • 最近两天项目上线了,不太忙,打算把产品jar包中的登录校验修改一下,所以需要修改产品jar包中的class文件,网上教程不太多,我昨晚搞了一套方法,共享一下。 1、jdgui.exe反编译; 2、修改class文件 3、重新合成...
  • 使用 android studio 将java代码 生成.jar 包,通过 android studio 打开jar包,发现其中的class 文件中的代码与java 源文件代码不一致,而且class 文件中的代码有问题 ``` java 代码: public synchronized ...
  • 现在有一个.jar文件,要修改其中某个文件代码。 准备 确保JRE已安装且环境变量已配置。 安装Java Decompiler。官方地址为: http://java-decompiler.github.io/ 选择其中的JD-GUI进行下载。 ...
  • 3.将jar包中的重写方法所在类的所有代码复制到我们新建的同包名同类名的类中; 4.在我们新建的同包名同类名的类中修改对应的方法中的代码,注意要保持方法中的参数不要发生改变, 也不要删除原类中已有的方法,但是...
  • Linux修改jar包中的配置文件 1.使用jar tvf jar | grep 目标文件名 查询出目标文件jar包中的目录 jar tvf opopopopo.jar |grep application-dev.yml 2.使用jar xvf jar 目标文件名(copy上面查出的全路径) 将目标...
  • 需要修改项目代码 修改内容不多 选择直接修改项目中class文件 解决方案: 1.直接拉取项目文件到本地 从服务端发送文件到客户端: sz filename 2.编译需要修改的java文件 编译java文件,输入命令为javac xxx.java ...
  • 修改jar内容

    2015-05-09 12:27:57
    修改jar中的代码内容,从而达到我们的效果
  • 如何修改编辑jar包中class文件呢??

    万次阅读 2016-11-21 22:44:19
    转自:... 1.在有源码的情况下:就那hibernate-core-4.1.10.Final.jar这个jar来说吧,我想修改里面的org\hibernate\cfg\PropertyContainer.class文件  1)
  • java 从jar包中读取资源文件

    千次阅读 2018-06-19 06:57:28
    转载自 java 从jar包中读取资源文件代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题。但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到...
  • 之前前几周遇到开发过程中遇到这样一种这样的问题,不知道大家有没有遇到过,就是我在spring boot中使用mave将项目打包成jar包部署到linux服务器上后,当我运行一个接口时,居然报错了,这里我贴出来给大家看下,如...
  • 这次项目中有一个配置文件,user.properties,用来配置一些用户账号等信息。放在src/main/resources下, 在项目中跑的好好的,打包后就读不到了。 我原来是使用 Xxx.class.getClassLoader()....xxx.jar!/user.pro...
  • 修改已经打好的jar包中的配置文件 有时候经常因为不同开发机器上的一部分配置不同,导致项目中的配置文件有些用户名密码等信息有差异,临时打包的时候经常忘记修改,可以重新打包,但是重新打包如果花费时间过长的...
  • -u 添加文件jar包中 -v 生成详细的报造,并输出至标准设备 -f 指定jar包的文件名 -t 显示jar中的内容列表 -c 创建一个jar包 -t 显示jar中的内容列表 -x 解压jar包 -m 指定manifest.mf文件.(manifest.mf文件...
  • 修改jar包中文件

    2018-12-27 14:12:03
    需求:工程引入的某一个jar不满足我的开发需求,需要修改jar中的代码。 1.下载jar对应的源码,新建一个java工程(maven),将jar中的文件放入新建工程中,不报错就行了(目的是修改完之后可以编译,不需要跑起来) 2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,148
精华内容 19,259
关键字:

代码修改jar包中的文件