使用java库将.class文件反编译为.java源代码

2023-11-23

我正在开发一个需要将.class文件反编译为源代码的java项目,我发现了很多方法,例如JAD反编译器和'javap -p'方法...,但我认为这些方法无法完成以编程方式(请告知是否可以),有什么方法可以以编程方式完成此操作,如果您向我展示任何库,我将不胜感激。


Procyon是一个用Java编写的Java反编译器,可以直接从Java代码中调用。例如:

final PrintWriter writer = new PrintWriter(System.out);

try {
    com.strobel.decompiler.Decompiler.decompile(
        "W:\\Hello.class",
        new com.strobel.decompiler.PlainTextOutput(writer)
    );
}
finally {
    writer.flush();
}

还有一个decompile()接受一个重载DecompilerSettings实例,您可以使用它来切换某些功能并向反编译器提供有关如何解决类依赖关系的提示。如有任何问题,请随时在 Bi​​tBucket 上与我联系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用java库将.class文件反编译为.java源代码 的相关文章

随机推荐

  • 拦截 WPF 应用程序的每次鼠标点击

    我希望拦截 WPF 应用程序中的每次鼠标单击 似乎使用命令路由机制这应该很容易 但抱歉我没有找到任何东西 我的应用程序实现了多个安全级别 并且如果在 x 分钟内没有人与应用程序交互 单击 则需要自动恢复到最严格的级别 我的计划是添加一个计时
  • 检测设备是用密码锁还是人脸锁的指纹锁保护的?

    我的应用程序包含登录的用户身份验证 包括 pin 图案 指纹解锁 这取决于设备安全性 我正在使用生物识别管理器来检测设备是否支持指纹生物识别管理器并检查设备是否安全使用isDeviceSecure 我需要检测移动设备在哪种模式下受到保护 无
  • Python 3.2 中的暴力破解脚本

    我是编写代码的初学者 我从 Python 开始 因为它看起来最简洁 最容易上手 我目前使用的是 Python 3 2 现在我读了一些关于Python编码的在线书籍等等 我制作了一些小程序 仅此而已 但后来我想制作一个程序 可以暴力破解随机密
  • 获取 UIStackView 子视图的框架

    我在 IB 中创建了一个 UIStackView 其分布设置为 Fill Equally 我希望获取每个子视图的框架 但以下代码始终返回 0 0 0 0 class ViewController UIViewController IBOut
  • 每个浏览器的媒体查询

    我想根据浏览器调整输入字段的大小 我可以为每个浏览器编写媒体查询 以便在单独的浏览器上为输入字段设置单独的宽度 就像对于 mozilla 来说 它在 chrome 上将具有单独的宽度 而 Opera 则将具有单独的宽度 媒体查询 are m
  • 如何使用 kotlin android 更新我的 Recyclerview?

    我有一个显示数据的 Recyclerview 活动 现在我想更新我的RecyclerView一旦获得新数据 现在每次我关闭并重新打开我的应用程序时 都会显示新数据 但我希望它没有关闭更新我的观点 我试过这个 但什么都行不通 fun setu
  • Apache Spark 案例在不同列上具有多个 when 子句

    鉴于以下结构 val df Seq Color Shape Range Size map Tuple1 apply toDF color val df1 df withColumn Success when color lt gt whit
  • elasticsearch禁用词频评分

    我想更改 Elasticsearch 中的评分系统 以摆脱对某个术语多次出现的计数 例如 我想要 德克萨斯州 德克萨斯州 德克萨斯州 and texas 得出相同的分数 我发现这个映射 elasticsearch 说会禁用术语频率计数 但我
  • Django Rest框架序列化器排除深度为2的外键

    我制作了一个 api 它以 json 数据的形式返回一个对象 我正在使用 django rest framework 及其序列化器 使用资源 ModelResource 我排除了一些字段 例如名为 所有者 的属性 其中一个字段本身就是外键
  • 关于 Powershell 中的范围

    我正在学习 Powershell 中的范围并有一些问题 关于 本地范围 据我所知 本地范围始终是当前范围 因此 默认情况下 当我们创建一个项目 没有范围修饰符 时 例如一个变量 在某个范围内 让它是脚本或全局 相应的范围将是脚本 全局 所以
  • 将 NSNumberFormatter 的负数格式从 (xxx.xx) 更改为 -xxx.xx

    我想将我的 NSNumberformatter 从显示带括号的负数更改为将减号放在前面 或任何本地化标准 我假设我可以使用 setNegativeFormat 来做到这一点 但读了苹果如此详尽的文档 我还是摸不着头脑 设置负数格式 设置接收
  • 检测特定 div 及其所有子级之外的点击

    我一直在阅读以下内容 https css tricks com dangers stopping event propagation 我想以适当且安全的方式实施这一点 我想当我点击 div 之外的类时container那console lo
  • Haskell 中如何使用 $ 运算符柯里化函数应用?

    我正在学习 haskell 并且有点困惑函数应用运算符 curry 的用法 根据 GHC 的类型是 Main gt t a gt b gt a gt b 但我可以输入以下代码 Main gt map 2 2 2 2 4 0 4 0 1 0
  • 如何获取 ListItemClick 的值并将其传递给另一个活动

    我有一个 listView 里面有信息 当我单击一行时 它必须为我提供该所选行下的所有详细信息 在该选择行中我有图像 图像名称 价格等 因此 当我单击 listView 中的图像时 它必须填充所有信息 包括下一个活动中的图像 我尝试在我的
  • 如何在 HTML 表单中不传递空输入字段

    我有一个表单 其中包含我们公司每种产品的大约一百个输入 文本字段 该表格将在当天结束时填写 并注明所售出的每种产品的数量 如何让表单只传递相对较小的非空字段子集 我不是在寻找表单验证 用户可以在任何输入字段中输入或不输入值 但是 我只希望输
  • 查找行中特定值的最后一次出现

    我有一张桌子 记录着梦幻足球联赛的比分 得分最低的一周不计入总分 我可以使用以下方法找到最低分 min function min B2 R2 我可以使用以下命令找到第一个实例 match function MATCH S2 B2 R2 0
  • 在 Linux 中使用 Core Dump 检查点/重新启动

    可以使用进程的核心转储来实现检查点 重启吗 核心文件包含进程的完整内存转储 因此理论上应该可以 将进程恢复到转储核心时的相同状态 是的 这是可能的 GNU Emacs 这样做是为了优化其启动时间 它加载一堆 Lisp 文件来生成图像 然后转
  • Typescript 中的 Angular:如何将通用类型传递给函数

    使用 Typescript 编写 Angular 5 单元测试 我有一个函数可以查询 DOM 并返回一个实例MyComponent如果找到类 function getMyComponent hostFixture ComponentFixt
  • 如何设置无限循环并打破它。 (Java 线程)

    我已经设置了一个线程 我想使用循环来运行它 所以这个线程应该在循环中运行并在某个时间中断并再次运行循环 请我不知道如何做到这一点 有人可以指导我吗 Java 有一个内置的机制 可以让线程做某事 然后等待一段时间再做一次 称为Timer 您可
  • 使用java库将.class文件反编译为.java源代码

    我正在开发一个需要将 class文件反编译为源代码的java项目 我发现了很多方法 例如JAD反编译器和 javap p 方法 但我认为这些方法无法完成以编程方式 请告知是否可以 有什么方法可以以编程方式完成此操作 如果您向我展示任何库 我