2014-09-29 5 views
1

더 큰 응용 프로그램의 제거 프로그램으로 작동 할 작은 응용 프로그램을 작성 중입니다. 설치 제거 프로그램이 실행중인 경우 아주 기본적인 메시지 (간단한 알림)를 응용 프로그램에 보낼 수있게하려고합니다.동일한 컴퓨터에서 실행되는 자바 응용 프로그램간에 통신하는 가장 좋은 방법

가장 좋은 방법은 무엇입니까? 내가 원하는 것을

그림 :

public class Uninstall { 
    public static void main(String[] args) { 
     if(isRunning("Application")) { 
      // Tell Application to clear data & exit 
      sendMessage("Application","EXIT"); 
     } 
    } 
} 

답변

1

당신이있는 거 옵션은 기본적으로

  • 파일 시스템에 약간 투박

    를 통해, 그러나 디버깅에 쉽게. 기본적으로 주 응용 프로그램은 파일 시스템 (예 : WatchService을 사용하여 추가 정보 here)을 주시합니다. 일반 socktes

    귀하의 주요 응용 프로그램이 소켓을 열고와 통신 할 다른 응용 프로그램에서 연결을 허용을 통해

  • . 원하는 경우 주 애플리케이션을 종료 할 수있는 것이면

    new Thread() { 
        public void run() { 
         new ServerSocket(123456).accept(); 
         System.exit(0); 
        } 
    }.start(); 
    

    과 같은 간단한 것일 수 있습니다. RMI

    이상

  • 당신의 제거는 기본 응용 프로그램에서 원격 메소드 호출을 할 수 있도록하기 위해 RMI 레지스트리를 사용합니다.

주 응용 프로그램과 설치 프로그램을 동시에 빌드한다고 가정합니다. 그리고 그들은 같은 JVM 버전에서 실행될 것이고, 둘 다 localhost에서 RMI를 추천 할 것입니다.

(다른 OS 별 답변 명명 된 파이프 또는 신호를 포함 할 수있다,하지만 난 당신이이 방향으로 가고 낙담 것입니다.) 빠른 답변을, RMI는 내가 찾던 확실히 무엇

+0

감사합니다. – Darajan

+0

@Underbar : RMI는 아마도 지나치게 잔인하고 불필요한 복잡한 목적 일 것입니다. – jarnbjo

+0

@jarnbjo 무엇을 권하고 싶습니까? 파일 시스템/소켓을 통해 이동하면 다른 응용 프로그램의 구멍을 열어 내 응용 프로그램을 강제로 제거하는 것처럼 보입니다. – Darajan

관련 문제