2016-03-22 11 views
1

Javaクラスの抜粋:Javaアプリケーションを複数回同時に実行するにはどうすればよいですか?

public static void main(String[] args) throws FileNotFoundException SQLException, ParseException { 
    TaskCheck tc = new TaskCheck(); 

    if (args.length != 1) 
    { 
     System.err.println("Missing parameter. Please pass the task Name."); 
     System.exit(1); 
    } 

    else 
    { 
     // Logic goes here 
    } 
} 

私は、引数で上記のJavaクラスを実行します。例:

java TaskCheck "testtask1" 

このJavaクラスを異なる引数で同時に実行する必要があります。だから、私はこれを達成するためにマルチスレッドを使用する必要がありますか?例については

java TaskCheck "testtask1" 

java TaskCheck "testtask2" 

java TaskCheck "testtask3" 
+0

クラスを実行しません。メソッドを実行します。 – Raedwald

+0

@ user5001305:あなたが今まで試みたことを共有します。 – Sanj

+0

私はcronジョブスケジューラとautosysジョブを試みました。しかし、それはこの仕事のために効率的に働きます。それが私がここでアイデアを探している理由です – user5001305

答えて

0

を達成するための一つの方法は、実際には、マルチスレッドとは何の関係もありません。プログラムを複数回同時に実行したいだけです。これは通常あなたのOSによって実現されます。例えば、Unix上で、あなたがWindowsでは

#> java TaskCheck "testtask1" & 
#> java TaskCheck "testtask2" & 
#> java TaskCheck "testtask3" & 

を行うことができます

#> start java TaskCheck "testtask1" 
#> start java TaskCheck "testtask2" 
#> start java TaskCheck "testtask3" 

あなたは純粋なJavaソリューションをしたい場合は、あなたがして、子プロセスを作成するRuntime.exec()ProcessBuilderに見ることができますjavaコマンドを実行します。

+0

ありがとうございました!私はこれをチェックします。私は実際に同じように考えていました。しかし、どのように私は引数を同時に渡したいのか決定できません。試してみる。 – user5001305

0

マルチスレッド並列処理

public class Echo{ 

    public static void main(final String[] args){ 
     if (args.length == 0) 
     { 
      System.err.println("Missing parameter. Please pass the task Name."); 
      System.exit(1); 
     } 

     for(final String taskName : args){ 
      Thread t = new Thread(){ 
       public void run(){ 
        System.out.println(taskName); 
        TaskCheck tc = new TaskCheck(); 

       } 
      }; 
      t.start(); 
     } 

    } 
} 
+0

ありがとうございます。これらのオプションを試してみます。 – user5001305

+0

こんにちは私は元の投稿を更新しました。あなたはそれを見てみることができますか? – user5001305

関連する問題