Ant Java taskは、パラメータを提供します。これは、定義によって、"有効になっていると、別のVMでクラスの実行がトリガーされます"です。大量のデータを処理しているので、このパラメータを設定すると、Javaヒープ領域が不足することがなくなりました。
同じことをJavaクラスで実行できるようにしたいと考えています。 fork
によって提供される機能を実現する最善の方法は何ですか?AntのJavaタスクでのforkのJava同等?
答えて
別のJavaプロセスを実行します。たとえば、ProcessBuilderクラスを使用します。
http://java.sun.com/javase/6/docs/api/java/lang/ProcessBuilder.html
好きなだけのワーカープロセスを実行することができます。別のメインクラスを持ち、そのメインクラスからタスクを実行し、タスクが完了したら終了します。
システム上のクラスパスとjavaバイナリの場所を把握する必要がありますが、それは実行可能です。
Process.waitFor()で完了したときに通知を受けることさえできると思います。
しかし、私はそれが同じVM内にあると思っています。 –
いいえ、プロセスを実行する場合は、別のVMです。 2つの異なるプロセスは、いずれの方法でも1つのVMを共有できません。 – alamar
私はあなたがAnt APIを直接使用できると思います... AntはJavaクラスで直接使用できます。 Javadocはバイナリ形式で入手できます。あなたはant
ソースコードを見ればfork
がtrue
、あるとき
、それはちょうどExecute
タスクをラップし、最終的には、呼び出されるコードが
Runtime.getRuntime().exec(cmd, env);
ダウンロードし、ソースコードを見てみましたorg.apache.tools.ant.taskdefs.Java
とorg.apache.tools.ant.taskdefs.Execute
の場合、プラットフォームに依存しない方法で実行する実行ファイルの場所を見つける上で参考になるでしょう。
- 1. Ant XSLTタスク対Javaタスク
- 2. のJava同等
- 3. AntのJavaのタスクの出力属性
- 4. Ant -e javaのタスクの場合
- 5. Java同等のwarn_unused_result
- 6. 同等のJavaインスタンス
- 7. xml.etree.ElementTree Javaで同等
- 8. Javaの同等のHMAC-SHA1
- 9. ObjectiveCのJava同等のデコード
- 10. Javaの同等のGroovyMBean
- 11. ソートのjava同等のインターフェイス
- 12. MAVEN JAVA同等のコード
- 13. javaと同等の.net FileStream
- 14. Javaのopensslと同等
- 15. Javaプライオリティキューと同等のインタフェース
- 16. Javaと同等の.NET System.Net.ServicePointManager
- 17. Javaカスタムプロトコルハンドラと同等のCocoaTouch
- 18. JavaのSTXXLと同等
- 19. JavaのNSNotFoundと同等
- 20. JavaのOpenSSLコマンドと同等
- 21. "カール-F" Javaの同等
- 22. PerlのJavaで同等のパック関数
- 23. Pythonのselect.selectはJavaで同等です
- 24. C#JavaのRuntime.getRuntime.exec()と同等です。
- 25. のJava Collections.sort()は同等ではここ
- 26. 「スーパー」と同等のC++? Javaでは
- 27. PythonはJavaのcompareTo()と同等です
- 28. AntのjavaタスクとクラスパスでClassNotFoundExceptionが発生する
- 29. JavaのStringBuilderのDartの同等語
- 30. JavaのEnum.ordinal()と同等のもの
起動時に-Xmxと-Xmsオプションを使用するよりもヒープが必要な場合は、あなたのアプリ。たぶんあなたは複数のプロセスを必要としないかもしれません。同じJVM内でスレッドと同時実行プリミティブを使用できるという利点もあります。 – basszero
権利。私たちはXmsとXmxをさまざまな値に設定することでそれを試みましたが、それは助けになりませんでした。プログラムは、設定された値に応じて、さまざまな期間実行された後に最終的にクラッシュしました。どうやら、それはメモリと関係がありますが、私たちがAnt(forkセットを使って)を介して呼び出すときには決して直面しませんでした。 – pugmarx