【问题标题】:Read the source code of .jar files with python用python读取.jar文件的源代码
【发布时间】:2017-07-12 13:16:54
【问题描述】:

我想阅读jar文件的源代码并提取单词的频率。我知道可以使用 Java 编辑器读取 jar 文件的内容,但我想使用 python 脚本自动执行此操作。

【问题讨论】:

  • jar 文件只是一个 zip 文件。解压,然后读取相关文件。
  • 必须是Python吗?你不能使用 Jython 吗?在 Jython 中,您可以执行以下操作: java.lang.ClassLoader.getResourceAsStream('jar 中文件的路径')
  • 明确一点,jar 文件包含编译后的代码,而不是源代码。
  • @BrianPipa 一个 Jar 文件可以包含源代码(或任何文件),尽管不常见。
  • @SteveSmith 一个 jar 文件可以包含任何文件,我知道。我不确定他是否知道 jar 文件通常包含已编译的代码(类文件)。是的,他可能有一个装满来源的罐子——他没有具体说明。这真的不应该用 java 标记文件是 java 但在这种情况下它们可以是任何文本文件。他试图用 Pythion 解决这个问题,而不是 java。

标签: java python jar extraction words


【解决方案1】:

您是否需要专门的 Python 库? Krakatau 是 Python 中用于反编译 .jar 文件的命令行工具,您或许可以将其导入并在脚本中使用相关函数。

或者,您可以调用它,或任何其他命令行.jar 反编译器,例如Procyon, 使用 Python 的Subprocess

在第二种情况下,您很可能希望重定向和捕获标准输出和/或标准错误。基本调用可能类似于:

import os    
from subprocess import Popen, PIPE
.
.
jar_decompiler_output = Popen(('jar_decompiler', '1stparam', '2ndparam',..), stdout= PIPE).communicate()[0].split(os.linesep)

请注意,communicate() returns a tuple.

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 2018-11-24
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多