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();
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-27
java 在反射 main方法的时候 有的个注意的地方那就是参数的 问题 这个问题在我前2年开发项目的使用遇见的 你需要对它的参数进行 处理下 这个是java版本变更带来的问题 也是java5.0版本的 兼容的问题本回答被提问者采纳
第2个回答  2012-12-27
同意楼上的。

java如何调用另个程序的main函数
Main方法是用static修饰的,有2种方法可以调用:1、类名.main(参数);2、new创建实例,实例.main(参数);这个地方注意必须传递字符串数组的参数 或者 null !另外举一个用反射机制调用Main方法的例子。这个类是被调用的main方法类:Java代码:public class Run { public static void main(String[] args...

请问利用Java反射实现一个类中的接口是如何实现的呢?
1.首先将找到的类的信息加载到运行时数据区的方法区。这个过程叫做类的加载。所以一下static类型的在类的加载过程中就已经放到了方法区。所以不用实例化就能用一个static类型的方法。2.加载完成后,在new一个类时,首先就是去方法区看看有没有这个类的信息。如果没有这个类的信息,先装载这个类。then...

java中, 怎么调用别的类的私有方法?
Class cls = obj.getClass();\/\/获得类的私有方法 Method method = cls.getDeclaredMethod("privateMethod", null);method.setAccessible(true); \/\/没有设置就会报错 \/\/调用该方法 method.invoke(obj, null);} public static void main(String args[]) throws SecurityException, IllegalArgumentExceptio...

利用java反射机制,通过一个对象获得完整的包名和类名
1、Test t = new Test().Class clazz = t.getClass().System.out.println(clazz.getCanonicalName()).System.out.println(clazz.getSimpleName()).2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect().System.ou...

java怎么调用一个jar包里的另一个jar包的class,新手求指教,谢谢
用反射啊例 A r = new A();Class temp = r.getClass();System.out.println("反射类中所有公有的属性");Field[] fb =temp.getFields();...

java反射获取一个实体类中的另外一个实体类中属性的值,两个实体类是...
class Test{ public static void main(String[] args) { A a = new A();System.out.println(getValueInField(a,"b1","i"));System.out.println(getValueInField(a,"b2","i"));System.out.println(getValueInField(a,"b3","i"));} public static Object getValueInField(Object obj,...

java中的反射,invoke方法详解
就是调用类中的方法,最简单的用法是可以把方法参数化,invoke(class, method)比如你Test类里有一系列名字相似的方法setValue1、setValue2等等。可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue 如:public class MyTest{ public static void main(String[] args...

java反射机制可以调用到私有方法,是不是就破坏了JAVA的卦装性呢。
封装,是将具体的实现细节隐藏,而把功能作为整体提供给类的外部使用,也就是说,公有方法能够完成类所具有的功能。当别人使用这个类时,如果通过反射直接调用私有方法,可能根本实现不了类的功能,甚至可能会出错,因此通过反射调用私有方法可以说是没有任何用处的,开发人员没有必要故意去破坏封装好的类。

java中如何通过反射获取类的属性
简单的方法如下:Class<?> cls=Class.forName(className);\/\/\/通过类的名称反射类 Object obj=cls.newInstance();\/\/\/对象实例化 Field field=cls.getField(fieldName);\/\/\/这个对应的是属性 fieldValue=field.get(obj);\/\/\/这个就是属性的值 ...

java同一个类中的方法调用?
1、如果一个类中只有一个名称为a的方法,那么我们可以直接调用即可,如下图所示 2、以下是我们直接使用传统的方式直接调用这个类中的a方法。3、但是如果一个类中,拥有多个方法名一样的方法,那么我们使用反射机制,要如何去调用这些方法呢,如下图所示,一个类中有多个方法名相同的方法。4、可能已经...

相似回答