有人知道可以反编译整个Jar文件而不是单个类的免费反编译器吗?我有一个问题的子类,如名称$1.类名称$2.类名称
当前回答
首先,值得记住的是,所有Java归档文件(.jar/.war/等等…)基本上都是花哨的.zip文件,并添加了一些清单和元数据。
其次,为了解决这个问题,我个人使用了几个可以在各个层面处理这个问题的工具:
Jad + Jadclipse,在IDE中编译。class文件 WinRAR是我最喜欢的压缩工具,它支持Java存档(请参见第一段)。 Beyond Compare是我最喜欢的差异工具,如果配置正确,它可以在任何归档文件(包括jar)之间进行动态比较。值得一试。
前面提到的优点是,我不需要持有任何其他外部工具,使我的工作环境混乱。我从这些文件中需要的任何东西都可以在我的IDE中处理,或者与其他文件本地进行区别。
其他回答
首先,值得记住的是,所有Java归档文件(.jar/.war/等等…)基本上都是花哨的.zip文件,并添加了一些清单和元数据。
其次,为了解决这个问题,我个人使用了几个可以在各个层面处理这个问题的工具:
Jad + Jadclipse,在IDE中编译。class文件 WinRAR是我最喜欢的压缩工具,它支持Java存档(请参见第一段)。 Beyond Compare是我最喜欢的差异工具,如果配置正确,它可以在任何归档文件(包括jar)之间进行动态比较。值得一试。
前面提到的优点是,我不需要持有任何其他外部工具,使我的工作环境混乱。我从这些文件中需要的任何东西都可以在我的IDE中处理,或者与其他文件本地进行区别。
如果你碰巧有bash shell和jad:
JAR=(your jar file name)
unzip -d $JAR.tmp $JAR
pushd $JAR.tmp
for f in `find . -name '*.class'`; do
jad -d $(dirname $f) -s java -lnc $f
done
popd
我可能有一点点,一点点的偏差,但它应该或多或少像宣传的那样有效。您应该得到包含反编译文件的$JAR.tmp。
注意:此解决方案仅适用于Mac和*nix用户。
我也试过找杰德,但一无所获。我的快速解决方案是下载包含jad的MacJad。一旦你下载了它,你可以在[where-you-download - MacJAD]/MacJAD/Contents/Resources/jad中找到jad。
喜欢的东西:
jar -xf foo.jar && find . -iname "*.class" | xargs /opt/local/bin/jad -r
也许?
我使用一个名为(令人沮丧的)JD: Java反编译器。
我发现在处理为Java 5或更高版本编译的类时,它比大多数反编译器都要好。不幸的是,在JAD通常会成功的地方,它仍然会有一些问题。
推荐文章
- 导致java.lang.VerifyError错误的原因
- 如何在Java中监控计算机的CPU、内存和磁盘使用情况?
- 如何设置超时在改造库?
- java lambda可以有一个以上的参数吗?
- HashMap -获取第一个键值
- 使用Jackson将JSON字符串转换为漂亮的打印JSON输出
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- Javadoc @see或{@link}?
- 在准备语句中使用“like”通配符
- Android Eclipse -无法找到*.apk
- javac和Eclipse编译器之间的区别是什么?
- 工厂模式和策略模式之间的区别是什么?
- 在Java中使用正则表达式提取值
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Intellij IDEA Java类在保存时不能自动编译