한 번에 2 개의 Java 응용 프로그램이 실행됩니다. (두 개의 별도 javaw.exe) 그들이 실행되는 동안 그들 사이에 개체를 공유해야합니다.자바 응용 프로그램간에 객체를 공유하는 방법은 무엇입니까?
영구 저장 장치없이이 작업을 수행하는 가장 간단한 방법은 무엇입니까?
한 번에 2 개의 Java 응용 프로그램이 실행됩니다. (두 개의 별도 javaw.exe) 그들이 실행되는 동안 그들 사이에 개체를 공유해야합니다.자바 응용 프로그램간에 객체를 공유하는 방법은 무엇입니까?
영구 저장 장치없이이 작업을 수행하는 가장 간단한 방법은 무엇입니까?
자바 프로그램에서 객체와 인스턴스 변수를 공유 할 수 있습니다. 이는 매우 간단한 작업입니다.
데이터 저장소가없는 두 프로그램간에 개체 (인스턴스)를 공유해야하는 경우 다음 선택 항목은 또는 Java 메시징 서비스를 사용합니다.
아마도 Oracle Coherence? 이는 응용 프로그램간에 공유되는 메모리 맵처럼 작동합니다.
당신은 TCP
예 : 영구적으로 객체를 저장할 수없는 경우 http://www.java-samples.com/showtutorial.php?tutorialid=1167
물론 그렇지 않습니다. 그런 다음 공유 메모리와 같은 것이 있어야합니다. 공유 메모리의 예 : http://unserializableone.blogspot.com/2006/10/share-precious-heap-memory-accross.html – ankitjaininfo
, 어떻게 든 그것을 전송해야합니다. 이것은 네트워크 또는 일종의 공유 메모리를 통해 수행 될 수 있습니다.
첫 번째 (네트워크) 방식의 경우 직렬화 (java.io.Serializable)를 사용하고 소켓을 통해 개체를 전송하십시오. 이렇게하려면 소켓 리스너를 작성해야합니다.
두 번째 방법을 사용하려면 제 3 자 라이브러리 (예 : EHCache)를 사용하고 구성해야합니다.
공유 상태 및 업데이트 상태를 선호하는지 아니면 일회성 메시지 개체를 보낼지 결정해야합니다.
첫 번째 경우 어떤 개체에 "원격 참조"를 공유해야합니다. RMI 좋은 접근 방식입니다.
두 번째 경우에는 공유하고 보낼 개체 만 serialize하면됩니다.
RMI가하는 RMI는 수신기를 등록에 보낸 사람이 연결 :) PARAM로 mesasge 객체 메소드를 호출 : 당신은 Ankit said 같은 소켓을 통해 (부전승으로 전환) 직렬화 또는 사용할 수 보낼 수 있습니다 그리고 RMI 객체
자바 메시징 서비스 (JMS), 아마도 잔인한 ...에 대해 잊어
다른 창조적하지만 간단한 일이 ...
이 상황에서는 Hazelcast이 정상적으로 작동한다고 생각합니다. 실질적으로 설정이 필요하지 않습니다 (Hazelcast 항아리에 의존성을 추가하는 것 이상).다음 코드 샘플에서는 공유 Map
을 설정하는 방법을 보여줍니다. 포함
// Code in process 1
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
Map<Integer, String> sharedData = instance.getMap("shared");
sharedData.put(1, "This is shared data");
// Code in process 2
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
Map<Integer, String> sharedData = instance.getMap("shared");
String theSharedString = sharedData.get(1);
Hazelcast 지원 다양한 공유 데이터 구조 Map
, Queue
, List
, AtomicLong
, IdGenerator
등 The documentation is good 내 경험에 구현 고체이다.
[두 개의 서로 다른 Java 데스크탑 응용 프로그램 간의 통신] (http://stackoverflow.com/questions/1680898/communication-between-two-separate-java-desktop-applications) –
이것은 매우 유용합니다. 감사합니다 :) – Vishal