Pregunta

Tarea hormiga Java proporciona fork parámetro, que, por definición "si está habilitado, activa la ejecución de la clase en otra VM".Como estamos tratando con una gran cantidad de datos, configurar este parámetro nos salvó de quedarnos sin espacio en el montón de Java.
Queremos poder hacer lo mismo a través de una clase Java.¿Cuál sería la mejor manera de lograr la funcionalidad proporcionada por fork?

¿Fue útil?

Solución

Ejecutar otro proceso java. Mediante el uso de la clase ProcessBuilder, por ejemplo.

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

Puede abrir tantos procesos de trabajo como desee. Hacen ellos con una clase principal separada, haciendo sus tareas de esa clase principal, y chihuahuenses cuando se haya completado su tarea.

Vas a tener que averiguar su ruta de clases, y la ubicación del binario de Java en el sistema, pero eso es factible.

Creo que incluso puede ser notificado cuando se completa a través de Process.waitFor ().

Otros consejos

Si miras el ant código fuente, cuando fork es true, luego simplemente envuelve un Execute tarea y, finalmente, el código que se llama es

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

Descargar y echar un vistazo al código fuente de org.apache.tools.ant.taskdefs.Java y org.apache.tools.ant.taskdefs.Execute le dará algunos buenos consejos para encontrar la ubicación del ejecutable para ejecutarlo de forma independiente de la plataforma, etc.

Creo que se puede utilizar directamente el API de Ant ... Hormiga se puede utilizar directamente en una clase Java. El Javadoc está disponible en su distribución binaria.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top