2012-11-18 5 views
3

JavaFx 응용 프로그램 내에서 JavaFx 응용 프로그램을 시작하려고하는데 Application.launch()를 한 번만 호출 할 수있는 것처럼 보입니다. 그렇다면 exec ("java ..."에서와 같이 다른 방식으로 JVM을 시작해야 함을 의미합니까?두 번째 JavaFX 응용 프로그램 시작

기타 배경 정보 JavaFx 응용 프로그램에서 JavaFx 응용 프로그램을 빌드하고 실행할 수있게하려고합니다. 지금은 클래스를 메모리에 컴파일하고 클래스를로드합니다 ... 파일 시스템에 모든 것을 작성해야하므로 정말 불행한 일입니다. 따라서 파일 시스템에 jar 파일을 가져올 수 있으므로 exec를 사용하여 시작할 수 있습니다. 두 번째 질문으로.

... 다른 자바 FX 창을 열고 무대를 얻을 내 새로 컴파일 및로드 된 응용 프로그램의 하위 클래스에 전달할?

+0

방금 ​​생각한 시간이 없습니다. 지금 테스트 할 시간이 없습니다. 다른 클래스 로더를 만들고 java fx 클래스를로드하고 광산을 넣은 다음 Application.launch()를 다시 호출 할 수 있습니까? – Stinky

답변

15

를 다른 자바 FX를 실행하려면 할 수있는 방법이 있나요 동일한 JVM에서 애플리케이션을 사용할 수 있습니다. ST는 N.B를 수동으로, 그것의 인스턴스를 생성 Stage을 만들고 Application#start()

public void runAnotherApp(Class<? extends Application> anotherAppClass) throws Exception { 
    Application app2 = anotherAppClass.newInstance(); 
    Stage anotherStage = new Stage(); 
    app2.start(anotherStage); 
} 

전화 : 당신이 anotherApp, 예를 들어, 표준 초기화의 특수 기능을 사용하는 경우가 작동하지 않을 것입니다 Application.init() 또는 Application.getParameters()

+0

제발, 귀하의 솔루션에 대해 질문 http://stackoverflow.com/questions/30445375/javafx-second-application-throws-not-on-fx-application-thread를 참조하십시오. –

관련 문제