如何修改jar包的某一个class】的更多相关文章

做了两年的开发,碰见了两次开源包的代码有问题,这次碰见的是wsdl4j.jar 具体问题以后再说,先说说如何修改其中的一个class 使用WinRAR打开(不是解压) 找到你要修改的class文件 右键拖出,然后使用java反编译工具(java decompiler)打开,将文件保存为java文件,然后放在IDE中编译为class文件,放回打开的WinRAR,覆盖原文件. 搞定!!!…
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件,这样感觉有点麻烦,就想办法能不能通过程序动态生成配置文件,然后修改或者替换掉Jar包里的配置文件,最后再上传到各个服务器去执行. 实现历程:刚开始看了大量文章,整理出来了一个操作Jar包的工具类,用工具类里面的方法去修改一个30M左右的Jar包文件时,发现耗时竟然要7秒,而且修改Jar文件的方法确实…
有时需要修改很多jar(假设这些jar都位于lib目录)中其中一个jar中的某一个类,而且又没有原始代码或ide,这时最简单的方式是: 1 进入lib目录 # cd lib # ls test.jar dependency1.jar dependency2.jar 2 查看待修改jar包内类结构 $ unzip -l test.jar or $ vim test.jar 3 解压待修改jar包 $ mkdir test_dir $ unzip test.jar -d test_dir 4 查看c…
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件,这样感觉有点麻烦,就想办法能不能通过程序动态生成配置文件,然后修改或者替换掉Jar包里的配置文件,最后再上传到各个服务器去执行. 实现历程:刚开始看了大量文章,整理出来了一个操作Jar包的工具类,用工具类里面的方法去修改一个30M左右的Jar包文件时,发现耗时竟然要7秒,而且修改Jar文件的方法确实…
一.前言 相信很多同学有这样的需求,现在很多公司都有多地的研发中心,经常需要跨地区部署,比如,博主人在成都,但是服务器是北京的.一般城市间网络都不怎么好,上传一个几十兆的jar包那是真的慢,别说现在微服务架构下,动辄两位数的fat jar.这里说的jar,就是spring boot项目打出来的fat jar类型,一般也有个几十兆吧. 博主之前还遇到部署北美亚马逊环境,好不容易传个包过去,后来发现有bug,需要改class,如果重新打包再传,真的要死的心都有了. 如果要改什么配置,或者发现某个cl…
https://blog.csdn.net/gzl003csdn/article/details/53539133 多个jar包合并成一个jar 使用Apache的Ant是一个基于Java的生成工具.这个工具的全名是another neat tool    可以到官网下载 apache-ant-1.9.7-bin.zip 下载好了之后接下来就是 解压   配置环境   使用 安装和配置 计算机>>>右键>>>属性>>>高级系统配置>>>…
修改jar包配置文件的正确操作,有的时候通过一些解压工具可以对内部的文件进行修改,但是有时候会无效.这就很烦了 一.背景:       有一个springboot项目,事先我已经用编译好打成jar包以及一堆lib包出来了,这个项目需要部署在多个地方,每个地方就要修改配置文件application.properties中的参数,需要别人不依赖编程工具修改并打包.那么在不用考虑安全性的前提下,为了让别人可以方便修改参数,于是我参考了网上的经验和Java在dos中的语句,实现将jar包解压成文件夹修改…
修改 jar 包 或 war 包内容 有一个 java web 项目,是 .jar 或 .war 文件,我想替换其中的部分样式(.css)或功能(.class). 步骤就是解压,替换,重新打包. 以 sample-web.war 为例 /usr/local/workspace/sample-web.war 解压缩至 sample-web 目录 unzip sample-web.war -d ./sample-web 在解压目录替换 .css 文件或 .class 文件 重新打包 jar -cvf…
一.背景 最新想要修改rebeyond大佬的冰蝎项目,特地去网上搜索如何修改jar包中的源码再替换回去的方法,但由于现在的一些文章写的太烂,导致走了很多弯路,因此写下这篇快速使用IDEA修改源码并替换class文件再打成jar包的文章. 二.具体步骤 1.下载冰蝎项目jar包,放入D盘目录下: 2.使用IDEA新建一个maven项目,这里就叫test_123: 3.打开File -> Project Structure: 在Libraries中加入刚刚下载的jar包: 加载完如下,点击Apply…
第一步:拉下git分支中代码,进行修改,修改后commit——>push 第二步:在IDEA中Terminal中执行命令进行打包到本地mvn clean package 第三步:上传到私服,方法如下 1.利用命令上传(mvn deploy命令上传包 到私服) cmd输入命令  最好进入到jar包的绝对路径 mvn deploy:deploy-file -DgroupId=zhongjin -DartifactId=API4BDS -Dversion=2.3 -Dpackaging=jar -Df…
开发中会遇到用第三方的jar包,有时候会出现不同的jar包,包名一致的情况,这就会引发运行时异常,找不到相应的jar包. 这种问题时常困扰我们很长时间.下面提出一种解决办法,例如gson.jar. 1.新建一个文件夹 2.将要修改的jar包放到文件夹里. 3.在该文件夹下创建一个txt文件,文件名为rule.txt,文件内容为 com.google.gson.**    为jar包里的引用路径,**表示所有 JPData.com.google.gson.@1    为要修改的jar包的引用路径…
1.先将要修改的jar包备份 copy xxx.jar xxx.jar_bak 2.建立一个新的目录便于后面的打包 mkdir jar_tmp 3.将包放到刚刚创建的目录里解压 mv xxx.jar jar_tmp/ unzip xxx.jar 4.删除xxx.jar rm -rf xxx.jar 5.打包修改过文件的所有文件与目录 jar -cfM0 xxx_new.jar * 注意:cfM0最后一个是零不是英文o.…
目录 背景 报错的代码 原先的写法 编写测试类 找原因 最终代码 背景 项目里需要获取一个excle文件,然后对其里的内容进行修改,这个文件在jar包里,怎么尝试都读取不成功,但是觉得肯定可以做到,因为项目里的配置文件就可以读取到,于是开始了探索之路. 报错的代码 ExcelWriter excelWriter = EasyExcel.write("to.xlsx").withTemplate(t).build(); 我想要成功调用以上的方法,需要读取一个文件的内容,然后写入到另一个文…
步骤: 1.将多个JAR包使用压缩软件打开,并将全包名的类拷贝到一个临时目录地下. 2.cmd命令到该临时目录下,此时会有很多.class文件,其中需要带完整包路径 3.执行 jar -cvfM test.jar *.class . 其中 test.jar 为生成目标 jar包 *.class 为需要使用的.class文件 . 表示输出jar包目录为当前路径 4.此时生成的jar包就是多个jar包的合并包了…
maven引入本jar包时,引入失败. 问题是另一个jar没有引入正确.…
import java.io.*; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; /** * jarPath: jar包所在路径 * jarFilePath: jar中想要修改文件所在…
1.导入到eclipse中, 修改完了 然后导出jar即可 2.jar cf file.jar *.class 将当前目录下所有CLASS文件打包成新的JAR文件 3.对于补丁.之前已经有jar 例如:发现一个bug.那么修改其中一个类,需要在次打包,对于这种情况,只需要把对应的 class放在指定的目录中 例如:file.jar中有一个类Demo 修复了bug需要再次上传,他对应的路径是com.demo.Demo; 那么只需要把Demo.class 在项目classes 目录下,建立一个com…
第一种方式 1. 直接在项目同样的包名里面新建同样的class,会优先jar包的class加载,等同于覆盖. 第二种方式 2. 拿到第一步打包后的jar或者war,找到相应的java类的.class文件,覆盖想修改的jar包的class文件,以后直接引入jar,就不用第一步的重写了.…
1.用WinRAR压缩软件打开jar包 2.将修改过的文件直接拖拽并覆盖被替换的文件即可…
某日,想要更改jar包中的某个class文件,有无rar无法解压jar文件,故找到如下方式进行操作 1.解压某个jar包:在需要解压的jar包目录下,打开命令行(cmd),输入如下命令,输入:C:\jar>jar xf lm.jar 没有任何反应就表示解压成功. 2.反编译class文件,相同路径新建java文件,修改所需代码,重新编译成class文件. 3.压缩jar包:命令:jar cvf lm.jar 文件1 文件2 文件3 文件4    文件夹5/*      回车      压缩后的j…
在pom文件的build节点中添加这个插件的引用: <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <!--这里要替换成jar包main方法所在类 --> <mainClass>com.sf.pps.client.IntfClientCall&…
项目中有些老的jar不是utf8打包的,中文显示乱码 打开的文件上直接右键, 修改只读jar的源码 自己写的文件可以在右下角修改编码,只读文件就要用上面的方法了…
例如: jar uf myJarFile.jar com\vsoft\servlet\myServlet.class This will replace the class myServlet.class inside the myJarFile.jar with a new one located in com\vsoft\servlet\myServlet.class…
maven 默认的中央仓库是在国外的服务器,下载速度慢,有时候稍不注意就下载出错 通常我将maven的中央仓库修改为阿里云的地址,下载速度很快体验非常好 修改conf下的setting.xml文件 在mirrors标签下增加如下内容: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/group…
1.导出jar包 1.1 idea导出jar包不如eclipse方便,但是熟练了也很容易操作 1.2 File -> Project Settings -> Artifacts(艺术品) 1.3 点击第二行的 “+” 号 -> Add -> 选择第一个 jar 1.4 修改Name, Output directory保持默认即可 1.5 在Output Layout标签下点击 “+” 号 -> Module Output 1.6 Create Manifest -> 选…
背景 客户提供了jar包,但发现db表中缺少一个字段,db追加以后需要修改jar包中的source. 操作  如何修改jar包中的source并重新打一个新的jar包,做了如下操作. ① 开包 解压jar包,解压后的source中找到需要修改的java文件,class文件和xml文件 ② 第一次打包 将需要修改的java从jar包中提出,class文件删掉,xml文件修改后保存在source中,第一次打包 ③ 创建简单的项目获取class文件 修改java文件,创建一个简单的java项目引入ja…
我介绍的方法是使用java命令来操作的,所以首先的安装jdk,这个就自己搞定吧. 提取jar包 为了将多个jar包打包成一个jar包,首先要将每个jar包的内容提取出来放到一个文件夹下,具体的操作命令就是使用jar xf jar的文件名 比如我的jar放到桌面的一个新建文件夹(2)下,那么就通过cmd进入到这个目录然后输入上面的命令即可 重新打包jar包 也是通过cmd进入到要打包的文件夹目录下,通过jar cf 新的jar包名 要被打包的文件夹名 如上图的命令就是将 com文件夹打包成一个my…
有些特殊情况下,需要将多个jar包打包成一个jar文件.如果使用maven可以加入如下插件: <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <!--这里要替换成jar包main方法所在类 --> <mainClass&g…
因为工作须要,这几天開始弃用eclipse,换idea.用了几天,idea确实有些地方比較方便.可是麻烦也是不少.并且网上相应的资料并没有eclipse那么多,非常多都是自己琢磨解决的,所以想弄个帖子来总结一下遇到的问题.做个记录. 1.jar包.导入一个project,libs下jar包都有,可是代码里就是找不到.这个还算简单.选中jar包右键.有个"add as library ..",就能够了. 也能够在项目设置(项目右键菜单open module setting)中librar…
转载地址:http://www.iteye.com/topic/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话: Main-Clas…