【问题标题】:Run multiple java main classes at once in netbeans在netbeans中一次运行多个java主类
【发布时间】:2012-11-22 17:56:36
【问题描述】:

我有几个具有不同参数的主要类。我还成功地将参数添加到每个类。

但问题是:我每次都必须手动启动每个类(例如单击运行文件)。

有没有一种解决方案,我可以在 netbeans 中一键启动所有类?并且类也应该遵循特定的顺序。

【问题讨论】:

    标签: java class netbeans main run-configuration


    【解决方案1】:

    也许分别调用每个班级?例如:

    FirstClass.java

    SecondClass.java

    ThirdClass.java

    在 FirstClass 中,您可以调用 SecondClass 来弹出窗口,只需使用 setVisible(true),如果您只想这样做。然后在SecondClass中调用ThirdClass以同样的方式弹出。

    我不确定这是否是您想要的,因为没有代码可以关闭,只是让您思考。

    【讨论】:

    • 不行。我有 3 个不同的服务器类和 2 个客户端类...所以 5 个具有主要方法的类,在服务器-客户端系统中
    【解决方案2】:

    您可以尝试通过不同的运行配置运行多个主类。

    http://wiki.netbeans.org/FaqTwoMainClassesWithArguments

    【讨论】:

      【解决方案3】:
      1. 在 NetBeans 中打开一个具有特定名称的新项目(文件 -> 新项目并完成演练)。

      2. 您可以在一个项目下创建任意数量的新类,方法是转到文件 -> 新文件 -> 并完成演练。此时,您不应在这些类中包含 main 方法。不要每次都打开一个新项目。

      3. 创建另一个文件(通过文件 -> 新文件等)。这次在这个新类中包含 main 方法的代码。在 main 方法中,您可以通过创建这些类的实例来调用任意数量的类。只要所有这些类都包含在同一个文件夹中,即在同一个项目下,这些类将按照您在 main 方法下调用它们的顺序执行。

      看起来您正在编写 java 程序,就像使用过程语言一样。在某种程度上,java 类就像过程语言的子程序。调用它们是通过创建该类的实例来完成的。

      【讨论】:

        【解决方案4】:

        通过属性设置一个类作为主类并运行,你可以使用以下代码:

        ClassName variableName = new ClassName();
        variableName.setVisible(true);
        

        ex- 假设我的类名是 Dog,我使用 frame 作为变量名

        Dog frame  = new Dog();
        frame.setVisible(true);*emphasized text*
        

        【讨论】:

          【解决方案5】:

          根据 cmets 和问题,我知道您想在 IDE(netbeans)中同时运行约 5 个不同的 Java 程序,并且启动顺序必须按特定顺序排列。我假设这些程序一旦运行就不需要 CLI 输入。

          我不知道用 netbeans 方法来实现您的目标,尽管在 Eclipse 中启动组可以满足您的要求。

          除了 IDE 之外,我们无论如何都可以通过编程方式实现这个目标。 Java 中的 main() 方法只是一个静态方法,所以如果您的所有主要方法都在一个项目中,那么您只需创建一个 LaunchSequence 类或其他东西,然后执行以下操作:

          public static void main(String[] args)
          {
              Thread t1 = new Thread()
              {
                  @Override
                  public void run()
                  {
                      ServerOneClass.main(whateverArgsItNeeds);
                  }
              };
              t1.start();
              Thread t2 = new Thread()
              {
                  @Override
                  public void run()
                  {
                      ClientOneClass.main(whateverArgsItNeeds);
                  }
              };
              t2.start();
              //and so on. 
              //The order is enforced by the order you call start(), not the order in which you declare the threads
          }
          

          如果您在不同的项目中有这些东西的代码,那么您可以创建一个新项目并将它们添加为依赖项。

          如果您确实需要所有程序的用户输入,您可能会受益于查看Running a java program from another java program

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-06-10
            • 2014-11-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-19
            • 2012-03-01
            相关资源
            最近更新 更多