我目前正在编写一个程序,当我运行以下主方法时,我想知道eclipse是否有可能自动为每个主打开单独的控制台:
public static void main(String[] args) {
object1.main(args);
object2.main(args);
object3.main(args);
object4.main(args);
}
我目前的解决方案是运行每个主方法,并在"显示所选控制台"选项中选择合适的方法进行查看,尽管每次我想测试我的程序时都是一个非常乏味的过程。如果你有任何建议,我将不胜感激。
感谢
如果从另一个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
启动一个运行相应Java进程的xterm
终端模拟器,也就是说,对于程序的每个实例,都应该弹出一个新的终端。(在Windows上执行此操作时,您可能必须使用cmd.exe
或类似功能。)
不确定这是否是你想要的。希望这能有所帮助。