Step 1: Get an instance of the class.
Class<?> clazz = Class.forName("com.sample.app.Test");
Step 2:
Get the main method
of Test class.
Method main = clazz.getMethod("main", String[].class);
Step 3:
Invoke the main
method.
String[] args1 = { "Hello", "Hi!!!!" }; main.invoke(null, (Object) args1);
Find the below working application.
Test.java
package com.sample.app; public class Test { public static void main(String args[]) { System.out.println("In the main method of Test class"); if(args == null) { return; } for(String arg: args) { System.out.println(arg); } } }
HelloWorld.java
package com.sample.app; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class HelloWorld { public static void main(String args[]) throws ClassNotFoundException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Class<?> clazz = Class.forName("com.sample.app.Test"); Method main = clazz.getMethod("main", String[].class); String[] args1 = { "Hello", "Hi!!!!" }; System.out.println("About to call the main method of Test class"); main.invoke(null, (Object) args1); } }
Run main
method of HelloWorld class, you will see below output in the console.
About to call the main method of Test class In the main method of Test class Hello Hi!!!!
You may like
Check whether I have JDK or JRE in my system
How to check whether string contain only whitespaces or not?
How to call base class method from subclass overriding method?
No comments:
Post a Comment