جافا ما يعادل شوكة في جافا مهمة من النمل ؟
سؤال
النمل مهمة جافا يوفر fork
المعلمة التي ، بحكم التعريف "إذا تم تمكين يتسبب في فئة التنفيذ في آخر VM".كما أننا نتعامل مع كمية كبيرة من البيانات ، ووضع هذه المعلمة انقذنا من نفاد Java الفضاء.
نحن نريد أن تكون قادرة على أن تفعل الشيء نفسه من خلال فئة Java.ما يمكن أن يكون أفضل طريقة لتحقيق الأداء الوظيفي على النحو المنصوص عليه من قبل fork
?
المحلول
تنفيذ آخر عملية جافا.باستخدام ProcessBuilder الفئة ، على سبيل المثال.
http://java.sun.com/javase/6/docs/api/java/lang/ProcessBuilder.html
يمكنك تشغيل العديد من العمليات المنفذة كما يحلو لك.جعل لهم وجود مستقل الرئيسي الدرجة القيام بمهامهم من أن الطبقة الرئيسية ، للأقلاع عن التدخين عند اكتمال المهمة.
سيكون لديك لمعرفة classpath ، موقع جافا الثنائية على النظام, ولكن هذا للتنفيذ.
أعتقد أنك يمكن حتى أن يتم إعلامك عندما الكاملة عبر هذه العملية.waitFor().
نصائح أخرى
إذا نظرتم الى شفرة المصدر ant
، عندما fork
هو true
، ثم أنها مجرد يلف مهمة Execute
وفي نهاية المطاف، الرمز الذي يحصل على استدعاء هو
Runtime.getRuntime().exec(cmd, env);
وتنزيل وسوف القاء نظرة على شفرة المصدر لorg.apache.tools.ant.taskdefs.Java
وorg.apache.tools.ant.taskdefs.Execute
تعطيك بعض المؤشرات كبيرة في العثور على مكان للتنفيذ لتشغيل في منصة وسيلة مستقلة، وما إلى ذلك.
وأعتقد أنك يمكن استخدامها مباشرة في API النملة ... النمل يمكن استخدامها مباشرة في فئة Java. وجافادوك متاح في توزيعها ثنائي.