【问题标题】:How to make changes in Java classes of a jar file如何更改 jar 文件的 Java 类
【发布时间】:2019-10-26 14:17:06
【问题描述】:

问题

我已将 arcGIS jar 文件集成到我的一个 Android 项目中,并希望对 jar 文件中的 java 类进行一些修改。我使用反编译工具 Jd-GUI 工具修改了 jar 并能够编辑 java 类。 现在,在这种情况下,我再次使用更新的类 (OAuthView) 创建同一文件夹的 jar。

这里的问题是在将这个更新的 jar 文件集成到同一个 Android 项目中之后,我无法正确编译我的项目。

为什么我需要在 arcGIS (esri) )OAuthView Java 类中进行更改: * 应用程序在安全测试中失败 原因:Cross Site Scripting (Java Injection),报告称 OAuthView Class 中的这一行正在造成问题:

setJavaScriptEnabled(true)

我在寻找什么: 任何可能的方法来解决这个问题。

屏幕截图(错误日志)

【问题讨论】:

  • 你所做的是正确的。您能否分享编译错误的详细信息以解决此问题。
  • @HB。我已经这样做了,在问题本身中提到。问题是编辑的 jar 文件无法正常工作,因为类没有正确引用,我想问题是我正在编辑第三方 jar。
  • @Ravi 问题是在再次重新打包更新的 jar 之后它没有编译,因为我无法访问这些类。此外,即使我没有对任何类进行任何更改,只是反编译并再次重新打包 jar,同样的问题仍然存在。
  • @HB.我在更新所需的类后使用提到的 JD 工具解压它我已经创建了文件夹的 zip 并使用命令提示符我已将该 zip 转换为 jar 文件这是我使用过的命令:
  • @Ravi 我在问题中附上了截图

标签: java android arcgis esri


【解决方案1】:

我怀疑的一个问题是,很多时候当你反编译 jar 时,一切都没有正确反编译。因此,当您再次打包罐子时,问题就出现了。这是你可以做的。

  1. 将 jar 文件的扩展名重命名为 .zip 文件
  2. 解压压缩包
  3. 现在只反编译 1 个文件(不是整个 jar 文件)
  4. 反编译后,更改代码并复制 .class 文件并将其替换为旧文件。
  5. 用新文件替换旧文件后。
  6. 再次压缩文件夹。
  7. 将压缩文件的扩展名从 .jar 重命名为 .zip

如果问题仍然存在,请尝试更改反编译程序并再次重复上述步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2016-12-31
    • 2012-12-20
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多