如何在Java中使用CMD一次运行两个类

时间:2015-07-31 03:31:19

标签: java

您好我创建了一个java文件,其中包含两个类 TwoClass TwoClass2 在编译时,它分别为我提供了两个类文件,但我必须分别运行每个类文件。我怎样才能做到这一点 ?我的代码如下:我将此文件保存为 TwoClass.java

class TwoClass{
public static void main(String args[])
{
    System.out.println("I am first class");
}}class TwoClass2{
public static void main(String args[])
{
    System.out.println("I am Second class");
}}

编译后会生成 TwoClass.class TwoClass2.class 现在,如果我想运行这些文件,请按以下步骤操作:

  

G:\ ZPREP> javac TwoClass.java

     

G:\ ZPREP> java TwoClass   我是一流的

     

G:\ ZPREP> java TwoClass2   我是二等人

     

G:\ ZPREP>

这里没有任何问题,但我必须单独运行每个文件,所以任何事情都是他们一次运行两个文件???请帮忙。

2 个答案:

答案 0 :(得分:3)

不是尝试在命令行中执行它,而是使用第三个类来运行两个线程,每个类一个,因此两个类的main方法将同时运行,使用相同的args;像这样的东西:

class TwoclassMain {

    public static void main(final String ... args) {

        Runnable runnableOne = new Runnable {
            public void run() { TwoClass.main(args); }
        }

        Runnable runnableTwo = new Runnable {
            public void run() { TwoClass2.main(args); }
        }

        Thread one = new Thread(runnableOne);
        Thread two = new Thread(runnableTwo);

        one.start();
        two.start();

        one.join();
        two.join();
    }

}

免责声明:我没有编译并运行这个例子,只是为了表明一般的想法。

更新:使用Java 8的相同想法:

class TwoclassMain {

    public static void main(final String ... args) {

        Thread one = new Thread(() -> TwoClass.main(args));
        Thread two = new Thread(() -> TwoClass2.main(args));

        one.start();
        two.start();

        one.join();
        two.join();
    }

}

答案 1 :(得分:2)

在命令行上,您可以使用&&链接命令。每个命令成功完成后,下一个命令将运行。如,

javac TwoClass.java && java TwoClass && java TwoClass2

或者您可以使用一个main方法调用另一个:

class TwoClass {
    public static void main(String args[]) {
        System.out.println("I am first class");
        TwoClass2.main(args);
    }
}

或者写第三个给他们两个打电话:

class Foo {
    public static void main(String args[]) {
        TwoClass.main(args);
        TwoClass2.main(args);
    }
}