0

我的项目中有两个包,a并且b.

a是我在程序运行时运行的“主类”,但我需要从中b运行a(如果有意义的话)。

我确定它类似于PackageB.BMain但我不确定。

编辑:

好的,所以我学到了一些新东西,开始我的主要项目是 RevIRC,里面我有两个包,MainChat 和 RevIRC,现在当我运行 RevIRC 运行程序时,我需要在运行 RevIRC 时运行 Mainchat .

就像我之前说的那样,我确定它是类似的东西,RevIRC.MainChat.ChatMain()但我似乎无法弄清楚。

4

3 回答 3

1

您有 2 个选项:

  • 从 A 创建 B 的新实例,如下所示:PackageB.BMain b = new PackageB.BMain();
  • 以静态方式访问方法,BMain如下所示:PackageB.BMain.someMethod();`

请注意,您可以单独使用它们中的任何一个,也可以将它们混合在一起,但是,这完全取决于您编写BMain课程的方式。

例如:

package PackageB

public class BMain
{
    public BMain()
    { }

    public void foo()
    {
        System.out.println("This is not a static method. It requires a new instance of BMain to be created for it to be called");
    }

    public static void bar()
    {
        System.out.println("This is a static method. It can be accessed directly without the need of creating an instance of BMain");
    }
}

然后在您的主类(具有该main方法的类)中:

package PackageA

public class AMain
{

    public static void main(String[] args)
    {
        PackageB.BMain.bar();

        PackageB.BMain bInstance = new PackageB.BMain();
        bInstance.foo();
    }
}
于 2012-10-22T08:56:13.700 回答
0

如果您有两个主要方法,它将从 A 或 B 运行。JVM 将选择它看到 IIRC 的第一个主要方法。

有一个独立的类,它将有 main. 并在那里创建您的课程..?

import a.Class1;
import b.Class2;
public class MainController
{

  public static void main(String args[])
  {
     Class1 class1 = new Class1() ;
     Class2 class2 = new Class2() ;
    //Both class no start at the "same" time.
  }
}
于 2012-10-22T09:01:34.043 回答
0

如果我没记错的话,你想从 A 类运行 B 类的 main 方法。你可以使用 B.main(arg[]); 调用它。例如:

package a;
public class A
{ 
public static void main(String[] args)
{
    System.out.println("This is main method of class A");
    B.main(null);
            /*pass any args if you want or simply set null arg*/
}
}
package b;
public class B
{
public static void main(String[] args)
{
    System.out.println("This is main method of class B");
}
}

我希望这个简单的例子能消除你的疑惑。

您可以参考包含 Java 初学者教程的链接。

于 2012-10-22T09:01:56.230 回答