Java中是否可以调用一个类中的main方法?

前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下:

main1中调用main2的主方法

package org.fiu.test;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("main1");
		ClassLoader classLoader = Main1.class.getClassLoader();
		try {
			Class<?> loadClass = classLoader.loadClass("org.fiu.test.Main2");
			Method method = loadClass.getMethod("main", String[].class);
			method.invoke(null, new Object[] { new String[] {} });
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

  main2类:

package org.fiu.test;

public class Main2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("main2");
	}

}

  运行main1,打印如下:

main1
main2

  

 

posted @ 2016-12-28 10:45  weizhxa  阅读(17447)  评论(4编辑  收藏  举报