如果您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>
该脚本定义了三个目标——执行哪个目标在default
参数中确定。
- 第一个目标,
compile
只是调用javac
来构建src
目录中的所有源。这会在运行任何其他目标之前自动执行。
- 第二个目标,
run_many
简单地并行启动您的 Main 类几次。每个实例将在单独的 JVM 中运行,但所有这些实例的输出将在 Eclipse 的控制台窗口中混合。
- 第三个目标,
run_external
启动一个xterm
终端仿真器,运行相应的Java 进程,即对于您的程序的每个实例,都应该弹出一个新终端。(在 Windows 上执行此操作时,您可能必须使用cmd.exe
或类似的。)
不确定这是否是您要找的。希望这可以帮助。