main
別のメソッド内からメソッドを複数回呼び出す場合main
、これは他の静的メソッドを複数回呼び出すことと同じです。特に、プログラムのこれらすべてのインスタンスは同じJVMで実行されます。
代わりに、単純なAntスクリプトを使用して、プログラムの複数のインスタンスを開始できます。次に例を示します。
<?xml version="1.0"?>
<project name="Test" default="run_external">
<target name="compile">
<delete dir="bin" />
<mkdir dir="bin" />
<javac srcdir="src" destdir="bin" />
</target>
<target name="run_many" depends="compile">
<parallel>
<java classname="test.Main" classpath="bin" />
<!-- copy-paste 'java' block for more instances -->
</parallel>
</target>
<target name="run_external" depends="compile">
<parallel>
<exec executable="xterm" dir="bin">
<arg value="-e" />
<arg value="java test.Main" />
</exec>
<!-- copy-paste 'exec' block for more instances -->
</parallel>
</target>
</project>
このスクリプトは3つのターゲットを定義します。そのうちのどれが実行されるかは、default
パラメーターで決定されます。
- 最初のターゲット、は、ディレクトリ内のすべてのソースをビルドするため
compile
に呼び出すだけです。これは、他のターゲットが実行される前に自動的に実行されます。javac
src
- 2番目のターゲットで
run_many
あるは、Mainクラスを数回並行して開始するだけです。各インスタンスは個別のJVMで実行されますが、これらすべてのインスタンスの出力はEclipseのコンソールウィンドウで混同されます。
- 3番目のターゲットは、それぞれのJavaプロセスを実行
run_external
するxterm
ターミナルエミュレータを起動します。つまり、プログラムのインスタンスごとに、新しいターミナルがポップアップするはずです。(Windowsでこれを行う場合は、使用する必要がある場合がありますcmd.exe
。)
これがあなたが探していたものであるかどうかわからない。お役に立てれば。