문제
Java 응용 프로그램에 대한 명령 줄 인터페이스를 구현하고 싶습니다. 명령 줄 프로그램이 다른 Java GUI 프로그램의 상태에 영향을 미치기를 원한다는 점을 제외하고는 그렇게 어렵지 않습니다. 예를 들어, 나는 다음을 입력 할 수있다.
java CliMain arg1 arg2
그리고 다른 실행되는 GUI 인스턴스는 적절한 조치를 수행합니다.
이와 같은 것을 구현하는 가장 쉬운 방법은 무엇입니까?
해결책
GUI 애플리케이션이 TCP 포트에서 청취 할 수 있습니다 ( localhost
인터페이스) 및 CLI 응용 프로그램이 연결됩니다.
이를 수행하는 한 가지 방법은 HTTP를 통해 휴식을 취하는 것입니다.
다른 팁
또 다른 방법은 JMX를 통한 것입니다. 그것은 당신에게 "무료로"많은 것들을 제공합니다 (간단한 경우 콩을 구현하고 등록하는 경우 매우 간단합니다). 특히이 작업에 특히 적합합니다.
GUI 응용 프로그램 (편집자와 같은)을 듣게 할 수 있습니다.
1) 특정 유형의 클립 보드 이벤트
이벤트가 관심있는 유형 인 경우 클립 보드 내용을 얻으십시오.
2) 특정 포트의 서버 소켓
서버 소켓에서 듣습니다. CLI 프로그램이 시작되면 알려진 포트의 서버 소켓에 연결하고 정보를 보내고 종료합니다.
3) 대기열
CLI 프로그램과 GUI 프로그램에서 Deque를 얻을 수 있습니다.
더 조사하려면 EMACS와 같은 많은 전문 편집자가 동일한 메커니즘을 사용합니다. http://www.emacswiki.org/emacs/emacsclient
가장 쉬운 방법은 GUI가 TCP 포트에서 명령을 듣는 것입니다. 명령 줄은 명령을 보내고 GUI는 해석합니다.
어쩌면 당신은 이름이 지정된 파이프로도 할 수 있지만 Java에서 그것을 어떻게 구현할 것인지 잘 모르겠습니다.