一个java应用程序中的多个类,每个类都有一个main函数

时间:2013-11-01 22:02:52

标签: java jar executable-jar

我在一个java应用程序中有多个类,每个类都有一个main函数。我目前必须手动启动每个班级。是否有任何可能的方法以特定顺序一起运行它们。因此,当一个课程结束时,第二个课程自动开始。我想过制作一个可执行文件,但不知道从哪里开始以及如何使用多个主要功能来实现这一点。

5 个答案:

答案 0 :(得分:2)

假设您想要运行A,B和C中的主要功能。所以用

编写另一个类(比如说D)
public static void main(String args[]) {
    A.main(args);
    B.main(args);
    C.main(args);
}

然后运行D类。

答案 1 :(得分:1)

如何编写一个接一个地运行您的类的简单脚本(* .bat或* .sh):

java -cp myJar.jar  com.foo.mainClass1
java -cp myJar.jar  com.bar.mainClass2
java -cp myJar.jar  com.baz.mainClass3
// and so on

答案 2 :(得分:0)

主要方法只是名为main的方法。如果你想按顺序调用它们,我会创建一个main方法,按照所需的顺序调用每个方法。

class ClassA {
    public static void main(String... args) {
        ClassB.main(args);
        ClassC.main(args);
        ClassD.main(args);
    }
}

答案 3 :(得分:0)

您可以从一个类中简单地调用其他类的main函数。 您可以决定您的序列,如A类调用B类的主要。

答案 4 :(得分:0)

一个解决方案可能就是这个:

interface App
{
     public void execMain(String args[]);
}

class MyApp1 implements App
{
  public void execMain(String args[])
  {
     // Stuff for  App1
  }
}

class MyApp2 implements App
{
  public void execMain(String args[])
  {
     // Stuff for  App2
  }
}

//...

你的主要终于:

public class Main
{
  // The list of apps
  private static App apps[] = new App[]
  {
     new MyApp1(),
     new MyApp2(),
     // ...
  }

  public static void main(String args[])
  {
    for(App a : apps)
    {
      a.execMain(args);
    }
  }
}

通过这种方式,您可以轻松添加要执行的其他应用。