public class TestInvoke {
public static void main(String[] args) throws Exception {
//路径要加file
URL url = new URL("file:D:\\Tools\\git projiect\\demoTest\\src\\main\\resources\\jar\\testInvoke-1.0-SNAPSHOT.jar");
URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url},Thread.currentThread().getContextClassLoader());
Class<?> clazz = urlClassLoader.loadClass("com.example.TestInvoke");
//如果入参则需要在后面加入参
Method method = clazz.getMethod("testPrint",String.class);
String s= (String) method.invoke(clazz.newInstance(),"调用成功了");
System.out.println(s);
}
@Test
public void test1(){
//可以通过此方法获取路径 然后拼接自己的路径 路径中有空格会被替换
File f = new File(this.getClass().getResource("").getPath());
System.out.println(f);
// D:\Tools\git%20projiect\demoTest\target\classes\com\example\demotest\testdemo
}
}
jar包里面的方法:
public class TestInvoke {
public String testPrint(String print){
System.out.println(print);
return print;
}
}
结果: