可以在java中的另一个类中调用类的main()
方法吗?
e.g。
class class1{
public static void main(String []args){
}
}
class class2{
public static void main(String []args){
class1.main();
}
}
答案 0 :(得分:35)
如果你想调用另一个类的main方法,你可以这样做,假设我理解了这个问题。
public class MyClass {
public static void main( String[] args ) {
System.out.println("main() method of MyClass");
OtherClass obj=new OtherClass();
}
}
class OtherClass {
public OtherClass() {
// Call the main() method of MyClass
String[] arguments = new String[] {"123"};
MyClass.main(arguments);
}
}
答案 1 :(得分:13)
如果我的问题正确无误......
main()方法在下面的类中定义...
public class ToBeCalledClass{
public static void main (String args[ ]) {
System.out.println("I am being called");
}
}
你想在另一个类中调用这个main方法。
public class CallClass{
public void call(){
ToBeCalledClass.main(null);
}
}
答案 2 :(得分:2)
是的,但只有当main被宣布为公开
时答案 3 :(得分:1)
是的,只要它是公开的并且你传递了正确的args。 有关更多信息,请参阅此链接。 http://www.codestyle.org/java/faq-CommandLine.shtml#mainhost
答案 4 :(得分:0)
不确定。这是一个完全愚蠢的程序,演示了递归调用main
。
public class main
{
public static void main(String[] args)
{
for (int i = 0; i < args.length; ++i)
{
if (args[i] != "")
{
args[i] = "";
System.out.println((args.length - i) + " left");
main(args);
}
}
}
}
答案 5 :(得分:0)
据我了解,问题不在于递归。我们可以轻松地在您的课程中调用另一个课程的main
方法。以下示例说明了静态和按对象调用。请注意,static
Class2
被遗漏了
class Class1{
public static void main(String[] args) {
System.out.println("this is class 1");
}
}
class Class2{
public void main(String[] args) {
System.out.println("this is class 2");
}
}
class MyInvokerClass{
public static void main(String[] args) {
System.out.println("this is MyInvokerClass");
Class2 myClass2 = new Class2();
Class1.main(args);
myClass2.main(args);
}
}
输出应为:
这是包装器类
这是第1类
这是第二课