문제

Ant 자바 작업 제공한다 fork 매개변수는 정의에 따라 "활성화된 경우 다른 VM에서 클래스 실행이 트리거됩니다.".우리는 많은 양의 데이터를 처리하므로 이 매개변수를 설정하면 Java 힙 공간이 부족해지는 것을 방지할 수 있습니다.
우리는 Java 클래스를 통해 동일한 작업을 수행할 수 있기를 원합니다.제공되는 기능을 달성하는 가장 좋은 방법은 무엇입니까? fork?

도움이 되었습니까?

해결책

다른 Java 프로세스를 실행합니다.예를 들어 ProcessBuilder 클래스를 사용합니다.

http://java.sun.com/javase/6/docs/api/java/lang/ProcessBuilder.html

원하는 만큼 많은 작업자 프로세스를 실행할 수 있습니다.별도의 메인 클래스를 갖고, 해당 메인 클래스에서 작업을 수행하고, 작업이 완료되면 종료하도록 만드세요.

클래스 경로와 시스템의 Java 바이너리 위치를 파악해야 하지만 가능합니다.

Process.waitFor()를 통해 완료되면 알림을 받을 수도 있다고 생각합니다.

다른 팁

당신이 보면 ant 소스 코드, 언제 fork ~이다 true, 그러면 그냥 래핑됩니다. Execute 작업을 수행하고 결국 호출되는 코드는 다음과 같습니다.

Runtime.getRuntime().exec(cmd, env);

소스코드 다운로드 및 살펴보기 org.apache.tools.ant.taskdefs.Java 그리고 org.apache.tools.ant.taskdefs.Execute 플랫폼 독립적인 방식으로 실행할 실행 파일의 위치를 ​​찾는 데 유용한 지침을 제공합니다.

ANT API를 직접 사용할 수 있다고 생각합니다. 개미는 Java 클래스에서 직접 사용할 수 있습니다. Javadoc은 이진 분포로 제공됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top