【问题标题】:Modify existing GWT application修改现有的 GWT 应用程序
【发布时间】:2014-01-20 10:30:56
【问题描述】:

我有一些 GWT 应用程序的 WAR 文件。没有源项目。 我需要在此应用程序中进行一些修改,例如向操作栏添加新按钮等。

我已经解开了 WAR 文件,并且在 WEB-INF/classes 中也有 .classes 和 .java 文件。 所以Java类的源代码是可用的。 deferredjs 文件夹下的 JavaScript 文件被混淆了。

很遗憾,我不是 GWT 专家。 所以问题是:是否可以使用 .java 文件修改现有的具有 WAR 的 GWT 应用程序? 又该怎么做呢?

谢谢。

【问题讨论】:

  • 不平凡。这与手动编辑二进制可执行文件大致相同。
  • 在您在 WAR 中找到的 .java 文件中,有没有 import com.google.gwt.core.client.EntryPoint 的文件?
  • 4 个类有入口点。 Log.java、TestDisclosurePanel.java、PalettePanel.java、EntryPointImpl.java。这些文件有什么用处吗?
  • 如果是客户端代码,则不是,因为该逻辑已被交叉编译成 Javascript。但是,如果它是服务器端逻辑,这是可能的。我的同事过去成功地重新打包了类文件。

标签: java gwt


【解决方案1】:

简短回答:不。

稍微长一点的答案:正如 chrylis 在 cmets 中提到的,GWT 编译器生成的 JavaScript 类似于二进制代码。它经过高度优化和混淆。没有机会反编译,也不太可能手动修改。

【讨论】:

  • 我不打算反编译 javascripts,而是使用可以从 WAR 中提取的 .java 文件。有什么东西不能让我从 .java 文件重建修改后的应用程序吗?
  • 我通常不在 WAR 中包含客户端的 .class 文件。因为这些文件是不必要的并且出于安全原因,我不希望任何人对它们进行反编译 ;-) 但是如果你很幸运并且你的应用程序的开发人员确实包含了这些文件......是的,它可能会工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多