`
KillEr_Jok
  • 浏览: 150104 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

无源码,修改第三方jar包

 
阅读更多

有一个第三方jar包,没有源码。如何修改里面的源码呢?

比如修改一个BitField.class文件,首先将jar包内容解压到一个目录下面

然后使用jd-gui工具,反编译目下BitField.class文件,然后在该目录下新建BitField.java文件

将反编译的内容,写入其中

cmd命令进入目录

使用javac BitField.java

具体步骤如下 (不好意思,网络不好,晚点上截图。)

 

 

 

1
0
分享到:
评论
4 楼 KillEr_Jok 2014-06-19  
yuyoo4j 写道
1) 在Eclipse建一个java工程. 将jar加到工程的jar依赖中.
2) 使用jd-gui等反编译工具, 将你需要修改的class进行反编译, 并copy出反编译后的代码.
3) 在Eclipse的工程中, 一个类路径与反编译类一样的类源文件(.java).
4) 粘贴copy后的代码, 并修改.
5) 将Eclipse编译出来的 .class文件重新 压缩进jar替换原jar中的.class文件. (常见的用rar软件操作)



学习了
3 楼 KillEr_Jok 2014-06-19  
arsemilan 写道
你的java文件不会引用其他的类?javac能成功吗

下面是代码测试
package test;
import test.depen.Depen;
public class Hello{
	public void print(){
		System.out.println("I'm Hello!");	
	} 
	public static void main (String[] args){
		Depen d = new Depen();
		d.print();
	}
}

package test.depen;
import test.Hello;
public class Depen{
	public void print(){
		System.out.println("I'm Depen!");	
	} 
	public static void main (String[] args){
		Hello h = new Hello();
		h.print();
	}
}

假设都放在G盘根目录下

C:\Users\my>  G:
G:>javac *.java
此时  G盘根目录下会生成Hello.class和Depen.class
但是,此时执行java Hello会出错,执行test.Hello也不行
在G目录下新增目录test/depen,分别将Hello.class和Depen.class放入test/和test/depen中
然后执行java test.Hello就可以看到输出信息了
然后删除源,Hello.java和Depen.java

反编译Depen.class文件,将内容另存为Depen.java,同时修改输出内容
G:>javac Depen.java
同样会生成Depen.class文件,将Depen.class文件拷贝到test/depen目录下。
G:>java test.Hello  可以看到修改后的输出。

修改jar包的时候,就没有这么麻烦了,只需要将jar包内文件结构拷贝到G盘根目录。
然后执行javac xxx.java(反编译代码)  基本就OK了。
2 楼 yuyoo4j 2014-06-13  
1) 在Eclipse建一个java工程. 将jar加到工程的jar依赖中.
2) 使用jd-gui等反编译工具, 将你需要修改的class进行反编译, 并copy出反编译后的代码.
3) 在Eclipse的工程中, 一个类路径与反编译类一样的类源文件(.java).
4) 粘贴copy后的代码, 并修改.
5) 将Eclipse编译出来的 .class文件重新 压缩进jar替换原jar中的.class文件. (常见的用rar软件操作)
1 楼 arsemilan 2014-06-12  
你的java文件不会引用其他的类?javac能成功吗

相关推荐

    eclipse 第三方jar包配置.txt

    通过直接修改`.classpath`文件来配置第三方JAR包是一种灵活而高效的方法,特别是在需要自动化构建或者希望更精确地控制构建过程的情况下非常有用。虽然这种方式相比使用Eclipse内置功能稍微复杂一些,但它提供了更多...

    Spring使用AOP的三个jar包

    要使用Spring的AOP功能,我们需要引入特定的库,这正是标题中提到的"Spring使用AOP的三个jar包"。 首先,我们来看`aspectjrt.jar`。这个库是AspectJ运行时环境的一部分,包含了运行时织入(runtime weaving)所需的...

    DOM4J第三方jar包(含源码)

    这个第三方jar包包含了DOM4J库以及其源码,这对于开发者来说是一个非常宝贵的资源,因为可以深入理解DOM4J内部的工作原理。 XML(eXtensible Markup Language)是一种标记语言,广泛应用于数据交换、配置文件和文档...

    jarjar-方便Java打包工具,自定义修改jar包包名

    - **类重命名**:避免类名冲突,尤其是当你使用了多个第三方库时。 - **混淆代码**:在发布开源项目或产品时,可以使用jarjar对敏感类进行重命名,增加反编译的难度。 总的来说,jarjar是一个强大而灵活的工具,它...

    android 混淆 去除第三方jar

    本文将深入探讨如何在Android项目中进行混淆,并特别关注如何处理第三方jar包。 首先,了解混淆的基本概念。混淆是通过重命名类、方法和变量,将其转化为简短的无意义名称,以增加逆向工程的难度。Android Studio...

    spring源码及编译所需jar包

    这是因为Spring有时会修改第三方库的源码以满足特定需求,如增强或定制功能。Repack工具可以帮助我们将修改后的类打包进新的jar中,以替换原始版本。 3. **Objenesis**:Objenesis是一个快速的无构造函数实例化库,...

    java源码和jar包下载地址-帮助文档

    5. 第三方库站点:如JCenter、Maven Repository等,也是获取jar包的好地方。 总的来说,Java开发者需要了解如何查找、下载和管理源码及jar包,以便在项目开发中高效地利用已有的工具和库。同时,良好的项目文档是...

    电信采信项目源码和依赖jar包

    在Java项目中,依赖的jar包可能包括了第三方框架(如Spring、MyBatis)、数据库驱动(如MySQL、Oracle)、网络通信库(如HttpClient)、加密解密工具(如BCrypt)、日志管理(如Log4j)等。开发者需要确保所有必要的...

    在Android源码中编译出指定jar包的操作

    本篇将详细讲解如何在Android源码中编译指定的jar包,并介绍如何在应用程序中引用第三方jar包。 首先,针对标题和描述中的问题,我们关注的是在`vendor/letv/frameworks/base/java`目录下的源码编译成`framework-...

    springboot 热加卸载、使用第三方springboot jar包service、controller

    - **Maven/Gradle依赖**:如果第三方JAR包已经发布到Maven仓库或JCenter,可以在项目的构建文件(如`pom.xml`或`build.gradle`)中添加依赖,Gradle使用`implementation`或`api`,Maven使用`compile`或`provided`。...

    泛微E-cology 二次开发Java Jar包

    在Java环境下进行泛微E-cology的二次开发,开发者通常需要使用到相关的jar包,这些jar包包含了泛微系统的API和核心功能模块。 本压缩包中的"泛微E-cology 二次开发JAVA jar包",重点在于"jar"文件,这是一种Java...

    最新Apache POI 5.2.3jar包和源码

    8. **ooxml-lib**: 这个目录可能包含了处理OOXML文件时所需的第三方库,比如XML解析器和样式表处理库。 9. **auxiliary**: 辅助库,可能包含了一些辅助工具或特定功能的实现,例如PPractise,这是一个用于POI性能...

    数据库脚本和三方jar,第三方数据库,Java源码.zip

    第三方jar文件通常由非Java标准库的外部开发者提供,包含特定功能或服务,如网络通信、数据处理、图形用户界面等。在Java项目中,引入这些三方jar可以节省开发时间,因为它们提供了现成的解决方案,而无需从零开始...

    java源码修改教程-本地maven仓库中的三方jar包修改

    通过以上步骤,我们可以有效地在本地环境中修改第三方jar包中的源码,并将其成功地应用于项目中。虽然这并不是最理想的解决方案,但在某些特殊情况下,这种方式可以有效解决一些问题。希望本教程能对大家有所帮助。

    JDK1.6使用BouncyCastle第三方jar支持TSL1.2通过Nginx转发多个HTTPS接口请求

    通过BouncyCastle的第三方jar包可以解决这个问题。也可以使用Nginx的第三方模块ngx_http_proxy_module,配置Nginx作为HTTPS代理服务器解决,不过代码需要修改地方较多。 解压压缩包后文件说明: \doc\conf\nginx....

    数据库脚本和三方jar,第三方数据库,Java源码.rar

    数据库脚本和三方jar,第三方数据库,Java源码.rar这个压缩包文件包含了多个关键的IT技术元素,让我们逐一深入探讨。 首先,我们关注的是“数据库脚本”。在软件开发中,数据库脚本通常指的是用于创建、修改或操作...

    数据库脚本和三方jar,第三方数据库,Java源码.zip.zip

    引入第三方JAR时,需要确保它们与项目的其他依赖兼容,并正确地配置到构建路径或依赖管理工具(如Maven或Gradle)中。 3. **第三方数据库**:除了标准的数据库系统(如MySQL、Oracle、SQL Server等),开发者还可能...

    eclipse源码反编译jar包

    这通常涉及到将反编译工具集成到Eclipse中,以便开发者可以在不离开IDE的情况下查看和理解第三方库的内部工作。描述中的“把这个jar按里边的说明放到相应位置,可直接在eclipse里反编译”意味着有一个反编译插件的....

Global site tag (gtag.js) - Google Analytics