2010-01-28 3 views
3

현재 JDI를 사용하여 이미 실행중인 "대상"Java 응용 프로그램에 연결하는 "디버거"Java 응용 프로그램을 개발 중입니다. 첫 번째 응용 프로그램이 아직 실행중인 상태에서 Ant가 내 대상 응용 프로그램을 시작한 다음 나중에 "디버거"를 시작할 수있는 방법이 있습니까?Ant가 두 개의 Java 응용 프로그램을 동시에 시작할 수 있습니까?

예 대상 프로그램을 실행하기 위해 JDI 앱을 개발할 수 있다는 것을 알고 있지만, 지금 당장 원하는 것은 아닙니다.

답변

9

개미 parallel 작업 내에서 두 개의 자바 프로그램을 생성 할 수 있습니다.

<parallel> 
    <sequential> 
    <java fork="true" classname="prog1 .... > 
    </sequential> 
    <sequential> 
    <sleep seconds="30"/> 
    <java fork="true" classname="prog2.... > 
    </sequential> 
</parallel> 

두 번째 스레드의 작업은 WAITFOR 조건에 의해 대체 될 수있다.

+0

고마워요! 그게 바로 제가 찾고 있던 것입니다! – Sandro

3

Ant의 <exec> 지시어에 대한 the doc을 확인하십시오. <exec>이있는 대상 응용 프로그램에 "spawn"매개 변수를 사용하여 호출을 추가 할 수 있어야합니다.

편집 : 죄송합니다. "amp off"는 백그라운드에서 프로세스를 실행하는 속어인데, 프로세스가 실행되는 동안 Ant가 계속 작동 할 수 있습니다.

+0

내가보기에 exec에서 가지고있는 유일한 문제는 운영체제에서 실행되는 자바 프로그램이 매우 다르다는 것입니다. 모든 OS에 대해 임원이 필요 하겠지? – Sandro

3

Ant에서 프로세스를 확실히 생성 할 수 있습니다. 이 작업을 실행하면

<target name="sleeper"> 
    <exec executable="sleep" spawn="yes"> 
     <arg value="100" /> 
    </exec> 
</target> 

는 * 당신이 완료 개미 실행을 볼 수 있지만, ps가 잠이 계속 표시됩니다 : 다음은 간단한 예입니다.

java 작업도 spawn을 지원합니다.

**이 예는 sleep 명령을 사용하는 UNIX 변형 OS를 가정합니다.

+0

OS 독립적 솔루션이 있습니까? – Sandro

+0

스폰과 함께 Java 태스크를 사용하는 것은 OS 독립적입니다. 다른 실행 파일을 생성하려면 OS 특정 세계로 확실히 향하게됩니다. 하지만 임무 작업은 당신이 어떤 OS가 실행되는지를 지정할 수있게 해줍니다. (창에서만 이것을 실행하고 유닉스에서만 이것을 실행하십시오) – Matt