Java를 통해 OS의 다른 프로세스에 액세스하기위한“모범 사례”가 있습니까?

StackOverflow https://stackoverflow.com/questions/161529

  •  03-07-2019
  •  | 
  •  

문제

Skype4java (Skype의 Java API)를 읽고 있으며 JNI를 사용하여 Skype 클라이언트에 액세스하는 것을 알았습니다.

직관적으로 나는 Java에 이미 다른 프로세스에 액세스 할 수있는 OS- 민감성 JNI 구현이있는 표준 라이브러리가 있다고 가정합니다. 나는 하나를 찾기 위해 설정했지만 그것을 찾을 수 없었습니다.

그런 도서관이 있습니까? 그렇지 않은 경우, Skype 클라이언트가 아니라 OS의 다른 프로세스에 액세스하는 모범 사례가 있습니까?

도움이 되었습니까?

해결책

나는 당신이 '액세스'가 당신에게 의미하는 바를 정의해야한다고 생각합니다. 평범한 오래된 프로세스 간 통신에 대해 이야기하고 있다면 소켓이나 JNI가 실제로 최선의 방법입니다.

메모리 매핑 파일 사용에 대한 Garth의 의견은 흥미 롭습니다. C 응용 프로그램 간 IPC에 MMFS와 가상 파일을 여러 번 사용했지만 Java의 MMF 구현이 기본 OS 가상 파일 시스템과 호환 될 수는 없었습니다. 이러한 종류의 가상 파일에는 일반적으로 사소한 설정이 필요하므로 작동하면 놀랄 것입니다 ...

앱간에 막대한 양의 데이터를 펌핑하지 않는 한 소켓을 사용하는 것이 아마도 가장 보편적이고 효과적인 방법 일 것입니다. 호스트 OS와 Java VM 간의 엔지니어를 설명하십시오 :-)

다른 팁

Java 1.4 이후부터 메모리 매핑 파일을 사용하여 다른 프로세스와 임의 정보를 교환 할 수 있습니다. 자세한 내용은 java.nio.mappedBytebuffer를 참조하십시오.

이것은 당신이 찾고있는 것이 아니지만 아마도 큰 도움이 될 것입니다. 자바 기본 액세스 Java.net의 프로젝트.

소켓을 잊지 마세요 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top