2008-10-30 65 views
1

我想为Java应用程序实现命令行界面。这样做不会太难,除非我想让命令行程序影响另一个Java GUI程序的状态。例如,我可以键入:Java IPC:GUI和命令行

java CliMain arg1 arg2 

而另一个正在运行的GUI实例将执行相应的操作。

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

回答

2

你可以有GUI应用程序监听TCP端口(localhost接口)上和CLI应用程序会连接到它。

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

+0

这是一个非常强大的技术。这也允许您为程序提供HTTP接口,这对于立即使您的应用程序网络可访问很有用。 – 2008-10-30 01:56:35

0

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

0

你可以有GUI应用程序(如编辑器)监听

1)某一类型
的剪贴板事件,如果该事件是一个类型,你有兴趣,然后获取剪贴板内容。某个端口


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

3)排队
可以从GUI程序的CLI程序和双端队列enque。

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

0

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

起初似乎很难,但是当你试用过“我会很快看到这是多么容易。它也支持通过SSL进行加密。所以如果网上有安全相关的数据,你可以保证你的数据交换。

0

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

也许你也可以用命名管道来做,但我不确定你会如何去实现它在Java中。