在Java中,我们可以从另一个类调用main()方法吗?例如,ClassA意味着在命令行上运行,因为它定义了一个main(String [] args)方法。
我想在ClassB中调用这个ClassA。我是否初始化类的新对象,如
ClassA newobject = new ClassA()
或者有没有办法在ClassB中传递ClassA的命令行选项。
感谢
答案 0 :(得分:3)
A.main(...string args here);
这就是它的全部内容,因为它只是一个简单的静态void方法。公平的警告,它将在同一个进程中运行,并可能与调用者一样。如果您正在寻找的是将它作为一个真实的,诚实的,善良的不同程序运行,那么您需要使用Java Process API来实际生成一个合适的新JVM。对于很多小型程序来说,你可能会侥幸逃脱:
Runnable r = new Runnable() {
public void run() {
A.main(argsArray);
}
};
Thread t = new Thread(r);
t.start();
答案 1 :(得分:1)
简单地初始化类不会调用其main()
方法。你必须明确地称它。你有实例化,
ClassA newobject = new ClassA();
只会调用ClassA
的构造函数,就是这样!
默认情况下将调用的唯一main()方法是您在命令行中传递的任何类,即java ClassB
。
就调用ClassA的main()
方法而言,您可以通过以下方式执行此操作:
ClassA.main();
这是因为main()
方法属于该类,因为它是static
。总而言之,这是不好的做法,不建议。