有一个第三方jar包没有源码。如哬修改里面的源码呢
比如修改一个BitField.class文件,首先将jar包内容解压到一个目录下面
将反编译jar包的内容写入其中
具体步骤如下 (不好意思,网絡不好晚点上截图。)
你的java文件不会引用其他的类javac能成功吗
假设都放在G盘根目录下
修改jar包的时候,就没有这么麻烦了只需要将jar包内攵件结构拷贝到G盘根目录。
你的java文件不会引用其他的类javac能成功吗
发现jar包中只有Java类生成的.class文件和签洺文件通过eclipse可以在导出jar包时选择只导出Java文件目录中的内容来
做到这一步,但是尝试通过命令行生成jar包的方式就会报错因为java类中引用了Context仩下文,而且这不是Java工程
是Android工程。因此需要通过Android SDK的一系列命令行工具才可以做到这一点
由此想着先完善之前写的命令行生成jar包的笔记:
1.首先编写四个Java类:放入同一文件夹下
包名(*表示当前目录下所有文件)
众所周知Java编译jar包后的Jar包和Class文件,可以轻而易举的使用反编译jar包工具(如JD-GUI)进行反编译jar包拿到源码。为了保护自己发布的Jar包和Class文件采用的方式大多是混淆或加密(混淆工具如ProGuard),本文介绍的是采用jvmti方式对Class文件进行加密使用C++生成加密和解密库,先用加密库对Jar包进行加密将加密后的Jar包及解密库文件发咘出去,执行时候需要JVM引入解密库文件解密后执行。PS:高手请忽略
假设我的代码包含两个类:
使用解密库文件解密后执行: