Java IPC:GUI和命令行

时间:2008-10-30 01:40:02

标签: java ipc

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

java CliMain arg1 arg2

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

实现这样的最简单的方法是什么?

5 个答案:

答案 0 :(得分:2)

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

执行此操作的一种方法是使用REST over HTTP。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你可以让GUI应用程序(比如编辑器)听

1)某种类型的剪贴板事件
   如果事件属于您感兴趣的类型,则获取剪贴板内容。

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

3)队列
   您可以从CLI程序中获取enque并从GUI程序中解除。

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

答案 3 :(得分:0)

您的申请可以通过RMI进行控制。应用程序将实现一个控制接口,在localhost上注册其服务,命令行应用程序将获得一个rmi代理并调用所需的控制方法......

起初看起来很难,但是当你尝试过时,你会很快发现它有多容易。它还支持通过SSL进行加密。因此,如果在线有安全相关数据,您可以保护数据交换。

答案 4 :(得分:0)

最简单的方法是让GUI在TCP端口上侦听命令。命令行将发送命令,GUI将解释它们。

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