2

我目前正在编写一个程序,我想知道当我运行以下 main 方法时,eclipse 是否可以为每个 main 自动打开单独的控制台:

public static void main(String[] args) {
    object1.main(args);
    object2.main(args);
    object3.main(args);
    object4.main(args);
}

我当前的解决方案是运行每个主要方法并在“显示选定的控制台”选项中选择适当的方法来查看,尽管每次我想测试我的程序时这是一个非常乏味的过程。如果您有任何建议,我将不胜感激。

谢谢

4

1 回答 1

1

如果您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或类似的。)

不确定这是否是您要找的。希望这可以帮助。

于 2013-02-17T20:15:19.433 回答