2010-06-23 6 views
-1

나는 만들고있는 자바 게임이 있고 각 창은 자체 구성 요소가있는 별도의 JFrame 입니다.외부 JFrames에서 변수 호출하기

다른 .java 프로그램에서 변수를 호출하는 방법은 무엇입니까? 어떻게하는지 잘 모르겠습니다.

+0

.java 프로그램을 사용하면 동일한 프로그램 (또는 JVM)의 클래스 또는 JVM의 별도 인스턴스에로드 된 클래스를 의미합니까? –

+0

별도의 인스턴스. – Kitsune

+0

이것이 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)라고 생각합니다. –

답변

1

실행중인 JVM 인스턴스는 다른 인스턴스에있는 오브젝트에 액세스 할 수 없습니다. 자바 가상 머신 간의 통신은 다른 방법으로 수행되어야합니다.

실용적인 방법은 TCP/IP 기반 인터페이스를 설정하는 것입니다. 하나의 응용 프로그램이 서버 역할을하여 포트를 열고 데이터 요청을 수신 대기합니다. TCP/IP 기반 클라이언트/서버 솔루션은 Java에서 너무 복잡하지 않습니다.

또 다른 간단한 대안은 파일 시스템에서 공유 파일을 사용하는 것입니다. 데이터 제공 업체는 변경 사항에 대해이 파일을 업데이트하고 '클라이언트'는 업데이트/변경 (모니터 수정 타임 스탬프)을 감지 할 때마다이 파일을 모니터링하고 콘텐츠를로드합니다.

그리고 세 번째 접근법을 언급하십시오 : Java Management Extensions (JMX)도 도움이 될 것입니다. JConsole (JDK의 일부)은 별도의 JVM에 연결하고 ('공용') 데이터 및 메소드에 액세스하는 방법에 대한 실용적인 예입니다.

+0

파일 기반 솔루션은 멋지지만 간단하지만 서로의 업데이트를 덮어 쓰는 프로세스로 인해 문제가 발생할 수 있습니다. JMX 아이디어는 매우 차갑고 우아합니다. –

+0

@Carl - JMX는 내가 가장 좋아하는 게임이지만 아주 도전적이다 ... 초보자는 초기 성공을위한 파일로 시작해야한다 :) –

관련 문제