如何在一个java类main方法中调用另一个类中的main方法
来源:互联网 发布:尼加拉瓜运河 知乎 编辑:程序博客网 时间:2024/06/05 06:09
本文转载:http://jinyan798.iteye.com/blog/546369
在项目中用到了在一个java类main方法中调用另一个类中的main方法来解决java1.2不能使用Axis的问题。在网上查了查发现还真能调用。这用到了java的反射机制。
下面直接写例子吧:
这个类是被调用的main方法类:
- public static void main(String[] args) {
- String str=args[0]+"Hello World";
- System.out.println(str);
- }
- }
public class Run {public static void main(String[] args) {String str=args[0]+"Hello World";System.out.println(str);}}
下面是调用main方法的类:
- 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();
- }
- }
- }
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();}}}
在写程序时,调用Method类的方法invoke(Object,Object)时老是报参数类型不匹配。我是这样写的method.invoke(Run.class.newInstance(),(Object) new String[]{idStr});错就错在main方法是类Run的静态方法,调用时是不需要对象实例的。
还有一个兼容问题:
method.invoke(null, new String[]{"ma","xiao"}); //★这思想是对的,但是版本问题,不允许了//现在对了,然后还报 wrong number of arguments,下面详细说明//:://现在说参数的个数不对//我要的方法我已经说了,它需要一个参数,那个参数是一个数组//如果按照1.5的语法,是没有问题的//但是SUN必须要考虑到老版本,//老版本的语法,很多的时候拿到一个数组时,它会迈力的给你一个一个拆开//而JVM又是按照老版本的方法执行的,//所以这里我传的new String[]{"ma","xiao"}被它拆成两个参数了//所以如果我只传一个,new String[]{"ma"},还是拆,说argument type mismatch,//当然,需要的是数组,你给个字串当然 argument type mismatch//怎么办,你既然要拆,那我最多再给你包一层,让你去拆吧method.invoke(null, new Object[]{new String[]{"ma","xiao"}});//这样,JVM一拆,拆出的一个数组,正是我想要的效果 run OK!//还有一个方法method.invoke(null, (Object)new String[]{"hello","world"});//强制转成一个 Object 1.4不是看见数组参数就拆么?[数组的引用应该是不会拆的]//现在 JVM看不见数组了,不拆了,run OK!
就这么多了,希望对大家有帮助
- 如何在一个java类main方法中调用另一个类中的main方法
- java提供在一个类的main方法中调用另一个类的main方法
- 如何理解在程序中调用另一个类的MAIN()方法
- java中main方法调用自身main方法
- Java写了main()方法运行时在类 class 中找不到 main 方法
- java 调用类的Main()方法
- 在java的main方法中调用java和javac
- Java中通过反射调用其他类中的main方法时要注意的问题
- Java中main函数调用同类中的方法
- Java中main函数调用同类中的方法
- JAVA_调用方法_同一个类里在main方法中调用方法
- java-怎样在main方法中调用action
- 在main方法中调用service
- java在main里面调用方法
- java 在类中找不到main方法的解决办法
- Java中的main方法
- java中的Main方法..
- Java中的main方法
- hive横转竖
- Installing JDeveloper on Mac OS X Lion (10.7)
- CEGUIEditBox : 获得准确的字符长度,看我给CEGUIEditBox动手术
- c++虚函数的前奏--函数指针与回调
- 解决了Could not get lock /var/cache/apt/archives/lock
- 如何在一个java类main方法中调用另一个类中的main方法
- JAVA 数据库连接编码问题
- erlang(2) gen_server
- 深入理解C/C++函数指针
- 37所国家示范性软件学院
- Qt配置文件分析
- make工具
- innerHTML报“未知运行时错误”的解决方法
- 提示java.lang.NoSuchMethodError,但是包里面有这个类解决办法