如何从同一项目中的另一个包运行包?

时间:2012-10-22 08:50:50

标签: java

我的项目中有两个包ab

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

我确信它的内容与PackageB.BMain类似,但我不确定。

编辑:

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

就像我之前所说的那样,我确定它的某些内容与RevIRC.MainChat.ChatMain()相似,但我似乎无法弄明白。

3 个答案:

答案 0 :(得分:1)

您有两个选择:

  • 从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();
    }
}

答案 1 :(得分: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.
  }
}

答案 2 :(得分: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");
}
}

我希望这个简单的例子能够清除你的怀疑。

你可以参考link,其中包含适合初学者的Java教程。