[英]Java IPC: GUI and Command Line
我想為 Java 應用程序實現一個命令行界面。 這不會太難做,除非我希望命令行程序影響另一個 Java GUI 程序的狀態。 例如,我可以輸入:
java CliMain arg1 arg2
另一個正在運行的 GUI 實例將執行適當的操作。
實現這樣的事情的最簡單方法是什么?
您可以讓 GUI 應用程序偵聽 TCP 端口(在localhost
接口上),並且 CLI 應用程序將連接到它。
一種方法是使用 REST over HTTP。
另一種方法是通過 JMX。 它為您提供了很多“免費”的東西(在簡單的情況下,您只需實現一個 bean 並注冊它——非常簡單),並且特別適合這項任務。
您可以讓 GUI 應用程序(如編輯器)監聽
1) 某種類型的剪貼板事件
如果事件是您感興趣的類型,則獲取剪貼板內容。
2) 某個端口上的服務器套接字
偵聽服務器套接字。 當 CLI 程序啟動時,它連接到已知端口的服務器套接字,發送信息並退出。
3) 排隊
您可以從 CLI 程序入隊,也可以從 GUI 程序出隊。
如果您想進一步調查,許多專業編輯器如 emacs 使用相同的機制。 http://www.emacswiki.org/emacs/EmacsClient
最簡單的方法是讓 GUI 偵聽 TCP 端口上的命令。 命令行會發送命令,GUI 會解釋它們。
也許你也可以用命名管道來做到這一點,但我不確定你會如何在 Java 中實現它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.