如何从 Mac 上的 \*.jar 文件中提取源代码?

新手上路,请多包涵

我很困惑。我下载了一个 *.jar 文件作为一个软件。所以,想把源码提取出来看看

我使用了命令 jar xf filename.jar

它返回了另外两个 *.jar 文件和一个 *.class 文件。我仍然无法使用标准文本编辑器在终端中打开它们。

也许这不是开源软件?有没有其他方法可以看到这里做了什么?

原文由 ShanZhengYang 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 935
2 个回答
  • 下载FernFlower.jar: https ://the.bytecode.club/fernflower.jar //fernflower.jar站点由http改为https
  • 文档: http ://the.bytecode.club/fernflower.txt
  • 存储库: https ://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler

运行“ java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar

这就是 Intelli-J 和 Android-Studio 反编译器所做的。

注意:Fernflower 将 .java 文件提取到 .jar 文件。您可以将 jar 文件解压缩为常规 zip 文件(如果您的 Archive Utility 在 OSX 上的版本允许它 - 它在 OSX Sierra 上不为我做,但在 El Capitan 上工作)或者你可以做 jar xf DecompiledJar 它会提取它。

示例(全部在一个命令中——多个命令由 && 分隔):

java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar && cd DecompiledJar && jar xf DecompiledJar.jar && cd ../

原文由 Brandon 发布,翻译遵循 CC BY-SA 4.0 许可协议

简单的解决方案:

如果你有 eclipse,只需将 jar 文件添加到当前项目的类路径中,你就可以看到 jar 中的所有包和源代码。您无需安装和使用这些命令。您将更好地查看所有文件

原文由 saravanan saminathan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题