首先,您需要动态创建给定类的实例:
Class> clazz = Class.forName("message"); Object messageObj = clazz.newInstance();
这假定.jar
包含message
该类的文件classpath
位于Java运行库上,以便Java运行库能够找到它.否则,您需要通过类加载器手动加载jar文件,例如,如何在运行时动态加载Jars?.假设您的A.jar
文件包含message
该类c:\temp\A.jar
,您可以使用类似的东西
URLClassLoader child = new URLClassLoader ( new URL[] {new URL("file:///c:/temp/A.jar")}, main.class.getClassLoader()); Class> clazz = Class.forName("message", true, child);
加载jar文件并从中加载消息类.
在这两种情况下,您都可以从类中检索该方法并在创建的实例上调用它:
Method getMessage = clazz.getMethod("getMessage"); String result = (String) getMessage.invoke(messageObj);