java如何调用另个程序的main函数
就是调用另一个程序 不可以吗? 展开
Main方法是用static修饰的,有2种方法可以调用:
1、类名.main(参数);
2、new创建实例,实例.main(参数);
这个地方注意必须传递字符串数组的参数 或者 null !另外举一个用反射机制调用Main方法的例子。
这个类是被调用的main方法类:
Java代码:
public class Run
{
public static void main(String[] args)
{
String str=args[0]+"Hello World";
System.out.println(str);
}
}
下面是调用main方法的类:
Java代码:
public class JobRun
{
public static void main(String[] args)
{
String idStr = "YAya";
try
{
Method method = Run.class.getMethod("main", String[].class);
method.invoke(null, (Object) new String[] { idStr });
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
扩展资料:
main方法是一个特殊的方法,是程序执行的入口,一个Java程序从main方法开始执行。Java虚拟机在执行Java程序之前会事先分配一个主线程,然后在主线程里面执行我们这个main方法。
线程就是一个程序里面不同的执行路径!总之,就记住,Java程序从main方法开始执行,
比如:
public static void main(String[] args) {
System.out.println("nihao");
}
在这里当程序运行的时候,从main方法进来,然后做的第一件事就是System.out.println("nihao");
注意: main方法执行结束,程序也就执行结束了!
参考资料:百度百科-Java
class A{
public static void main(String[] args){
System.out.println("Hello world");
}
}
class B{
public static void main(String[] args){
for(int i=0;i<args.length;i++)
System.out.print(args[i]+" ");
System.out.println();
}
}
public class Test {
public static void main(String[] args){
A.main(null);
B.main(new String[]{"one","two","three"});
}
}
有的IDE,比如Eclipse,会要求你选择运行哪个main。
所以想要在本程序中调用其他的main方法是不可能的!当然了!如果你的main不是程序入口的而是自己随便写的方法,而方法名叫做main那就另当别论了!随便你怎么用了!
这样说不知道LZ明白了没?
其实需要调用很简单
在B.java中写一个
public static void fname() {
...
}
然后在A中
B.fname();
这样就可以调用了..(当然前提是在A程序中import B)
想调用另外一个main函数的话,为什么不把那个main函数变成普通的方法呢,静态的,非静态的随便你怎么用啊!