我想为Java应用程序实现命令行界面。这样做不会太难,除非我想让命令行程序影响另一个Java GUI程序的状态。例如,我可以键入:Java IPC:GUI和命令行
java CliMain arg1 arg2
而另一个正在运行的GUI实例将执行相应的操作。
实施这样的最简单的方法是什么?
我想为Java应用程序实现命令行界面。这样做不会太难,除非我想让命令行程序影响另一个Java GUI程序的状态。例如,我可以键入:Java IPC:GUI和命令行
java CliMain arg1 arg2
而另一个正在运行的GUI实例将执行相应的操作。
实施这样的最简单的方法是什么?
你可以有GUI应用程序监听TCP端口(localhost
接口)上和CLI应用程序会连接到它。
执行此操作的一种方法是使用基于HTTP的REST。
另一种方式是通过JMX。它为你提供了很多免费的东西(在简单的情况下,你只需要实现一个bean并注册它 - 非常简单),并且特别适合这个任务。
你可以有GUI应用程序(如编辑器)监听
1)某一类型
的剪贴板事件,如果该事件是一个类型,你有兴趣,然后获取剪贴板内容。某个端口
上
2)服务器套接字收听上的服务器套接字。当CLI程序启动时,它会在已知端口连接到服务器套接字,发送信息并退出。
3)排队
可以从GUI程序的CLI程序和双端队列enque。
如果您想进一步调查,许多像emacs这样的专业编辑使用相同的机制。 http://www.emacswiki.org/emacs/EmacsClient
最简单的方法是让GUI侦听TCP端口上的命令。命令行将发送命令,GUI将解释它们。
也许你也可以用命名管道来做,但我不确定你会如何去实现它在Java中。
这是一个非常强大的技术。这也允许您为程序提供HTTP接口,这对于立即使您的应用程序网络可访问很有用。 – 2008-10-30 01:56:35