Java使用反射调用类的main()方法

2024-01-04

我需要使用反射从另一个主方法调用 Java 类的主方法。

必须使用反射,以消除被调用的主类的编译时依赖。 直接的方法不会产生影响,因为它只识别“公共”和“非静态”方法。 建议?


不应该比调用任何其他函数更复杂:

public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    Class<?> cls = Class.forName("pkg1.pkg2.classname");
    Method meth = cls.getMethod("main", String[].class);
    String[] params = null; // init params accordingly
    meth.invoke(null, (Object) params); // static method doesn't have an instance
}

但我真的没有看到它有很多用途,它给你带来的唯一好处是,只要你从不使用特定的代码路径,你就可以编译程序而无需链接另一个程序,但如果这就是你所需要的,在这里我们去 ;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java使用反射调用类的main()方法 的相关文章

随机推荐