2011-07-20 8 views
2

多くの "main"クラスを含む5 MBのjarファイルを想像してください。それぞれのファイルは、java -cp my_fat_deployment.jar net.example.MyMain15のような独自のプロセスとして開始されます。いくつかのプロセスは数日間実行され、他のプロセスは数分または数秒間実行されます。一度に5〜20台が稼働しています。1つのjarからの複数のjavaプロセス

私はそれを実行する二つの方法を比較しようとしています:コピーから

java -cp my_fat_deployment.jar net.example.MyMain15

  • 打ち上げ:

    まったく同じファイルオフ

    1. 起動各プロセスを

      cp my_fat_deployment.jar my_copy_15.jar

      java -cp my_copy_15.jar net.example.MyMain15

    それが重要ケースで私は、Linuxボックスの日からのJavaについて話しています。

    それぞれのアプローチにはどのような賛否両論がありますか?最初のものに安定性やセキュリティの問題はありますか?より速く、なぜですか?

  • 答えて

    4

    ファイルのコピーを避けるため、最初の方が高速です。それ以外は、まったく同じです。

    +0

    Javaは何らかの形でプロセス間でjarコンテンツをキャッシュ/再利用しませんか? –

    2

    どちらも同じです。それらの間に違いはありませんが、コピーを作成するとディスク領域が増えます。

    もちろん、各プロセスを個別にアップグレードする場合は、別々のJARを使用する必要があります。 jarファイル名は重要ではありませんよう

    2

    を削除し、異なるコンテンツを持つJava excection後の各時間を.jar fileを生成しない限り、あなたが最初の1

    第二ステップで行く必要があり、冗長です。

    0

    大ジャー内の複数の発射点を持っている最も簡単な方法は、単に

    1. Aクラスパスが大きいジャーを指すとマニフェストを含む各起動ポイントのための余分なジャーを有することである
    2. 起動クラスを指すメインクラス。

    (さらに記録保持に必要なもの)

    その後、ちょうどあなた-cpものを保存し

    を行うことができます。

    関連する問題