리플렉션을 사용하여 다른 Java 프로그램의 main (String [] args) 메소드를 찾고 호출하는 Java 프로그램이 있습니다. 이 다른 프로그램은 일반적으로 자체 스레드를 생성하는 경향이있는 스윙 응용 프로그램입니다. 나는이 다른 '프로그램'이 언제 끝나는지를 결정할 방법이 있는지 궁금해하고있었습니다. 어쨌든 호스트 프로그램과 같은 공간에서 실행되기 때문에 이것을 탐지 할 수 있는지 확실하지 않습니다. 현재의 방법은 열려있는 프레임이 우리 자신이 아니고 가장 큰 해결책이 아닌지 확인하는 것입니다. 프로그램에서 자식 프로그램을 실행하는 것은 실제로 액세스 할 수있는 옵션이 아닙니다.java reflection을 사용하여 시작된 응용 프로그램이 완료된시기를 결정하는 방법
편집 : 답변은 이중 접근 방식입니다. 먼저 ThreadGroup을 만들고 해당 그룹의 구성원 인 스레드에서 하위 프로그램을 실행하십시오. 그런 다음 자식 프레임에 속한 프레임이 있으면 Frame.getFrames()를 확인하십시오.
이 --Sandro
잘 모름 그것은 분리 된 EDT를 얻지 못할 것이고 main()이 끝나면이 체크는 잘못된 대답을 리턴 할 것입니다. – akarnokd
비공개 API를 사용하여 AppContext를 설정해야합니다. –
지금 사용해보세요. 곧 결과가 나올거야. – Sandro