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

时间:2017-07-13 14:04:08

标签: java user-interface command-line jar wrapper

我目前正在开展一个大项目。我们使用来自提供者的一些代码,我们希望在我们的软件中包含他们的一个jar。

此jar目前用于数据恢复,并通过GUI询问备份文件位置。

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

我想知道我是否可以创建一种可以填充和使用此GUI而不显示实际显示GUI的包装器?

2 个答案:

答案 0 :(得分:2)

您必须了解 - 这与 JAR 文件无关。 JAR文件只是java应用程序的容器。所以重点是:Java应用程序引发AWT / Swing / ... UI以收集某些信息,然后驱动某些"业务逻辑"。

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

换句话说:UI只是要求数据;然后调用一些其他类。那些其他类与UI事物的关系没有

如果您的情况属实,您可以自行收集所需信息并将其推送到那些业务逻辑中。类。

但是如果该提供商做了工作,那么GUI和"业务逻辑"零件紧密耦合/缠结。在这种情况下,只有三种选择:

  • 你放弃了
  • 您向您的提供商抱怨并要求他们返工他们的设计,想出一个可以驱动的解决方案,而无需他们的 GUI应用
  • 您尝试对其GUI实际执行的操作进行逆向工程;然后你尝试建立自己的"驱动程序"基于那个

根据您的具体情况,选项3的工作可以是“不可能”之间的任何内容。和"容易做"。即使您成功创建了这样的工作:现在您的代码与该提供商的交付紧密耦合。他们所做的任何改变都可能会破坏您的解

答案 1 :(得分:2)

Selenuim可以做那些事情。

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