代码之家  ›  专栏  ›  技术社区  ›  Edward Z. Yang

Java IPC:GUI和命令行

  •  1
  • Edward Z. Yang  · 技术社区  · 16 年前

    我想为Java应用程序实现一个命令行接口。这不会太难做,除了我希望命令行程序影响另一个Java GUI程序的状态。例如,我可以输入:

    java CliMain arg1 arg2
    

    另一个正在运行的GUI实例将执行适当的操作。

    实现类似这样的东西最简单的方法是什么?

    5 回复  |  直到 16 年前
        1
  •  2
  •   Greg Hewgill    16 年前

    您可以让GUI应用程序监听TCP端口(在 localhost 接口),cli应用程序将连接到它。

    一种方法是使用HTTP上的REST。

        2
  •  0
  •   Will Hartung    16 年前

    另一种方法是通过JMX。它为您提供了很多“免费”的东西(在简单的情况下,您只需实现一个bean并注册它——非常简单),并且特别适合于这个任务。

        3
  •  0
  •   anjanb    16 年前

    您可以让GUI应用程序(如编辑器)监听

    1)特定类型的剪贴板事件
    如果事件是您感兴趣的类型,则获取剪贴板内容。

    2)某个端口上的服务器套接字
    在服务器套接字上侦听。当cli程序启动时,它在一个已知端口连接到服务器套接字,发送信息并退出。

    3)排队
    您可以从cli程序查询,也可以从gui程序查询。

    如果您想进一步调查,许多专业编辑(如Emacs)使用相同的机制。 http://www.emacswiki.org/emacs/EmacsClient

        4
  •  0
  •   Daniel Hiller    16 年前

    您的应用程序可以通过 RMI . 应用程序将实现一个控制接口,在本地主机上注册其服务,命令行应用程序将获得一个RMI代理并调用所需的控制方法…

    一开始看起来很难,但当你试过之后,你会很快发现这是多么的容易。它还支持通过 SSL . 因此,如果有与安全相关的在线数据,您可以保护您的数据交换。

        5
  •  0
  •   Claudiu    16 年前

    最简单的方法是让GUI监听TCP端口上的命令。命令行将发送命令,并且GUI将解释这些命令。

    也许你也可以用命名管道来完成它,但是我不确定你将如何在Java中实现它。