如何将 Gui jar 转换为命令行 jar?

How to transform Gui jar into command line jar?

我目前在做一个大项目。我们使用来自供应商的一些代码,我们希望在我们的软件中包含他们的一个 jar。

该jar目前用于数据恢复,通过GUI查询备份文件位置

我已与提供商核实,我无法在完整命令行中使用此 jar。

我想知道我是否可以制作一种可以填充和使用此 GUI 而无需实际显示 GUI 的包装器?

您必须了解 - 这与 JAR 文件无关。 JAR 文件只是 java 应用程序的 容器 。所以重点是:Java 应用程序提出 AWT/Swing/... UI 来收集某些信息,然后 驱动 一些 "business logic".

您唯一的机会是:如果该应用程序是以合理的方式编写的,那么它应该被编写为 UI 内容与实际业务逻辑分开。

换句话说:UI只是在请求数据;然后调用一些 other 类。而那些 other 类 与 UI 事物完全 没有 关系。

如果您的情况确实如此,您只需自己收集所需的信息并将其推送到 "business logic" 类.

但是,如果该提供者的工作很糟糕,那么 GUI 和 "business logic" 部分就会紧密 coupled/entangled。那么,只有三个选择:

  • 你放弃
  • 您向您的供应商投诉并要求他们重新设计他们的设计,以提出一个可以驱动而不需要他们的 GUI 申请
  • 你试图逆向工程他们的 GUI 实际上在做什么;然后你尝试基于那个
  • 构建你自己的"driver"

根据您的情况,选项 3 的努力可以介于 "impossible" 和 "easy to do" 之间。即使您成功创建了这样的解决方法:现在 您的 代码与该提供程序的交付紧密耦合。他们所做的任何更改都可能破坏您的解决方案。

Selenuim 可以做这类事情。

你也可以将它包含在eclipse的一个新项目中,看看你是否可以打开.class文件(你可能需要一个反编译插件),如果它设计得足够好并且GUI是与逻辑分离,您可以为其编写命令行工具