加载远程Java类
我构建了一个android应用程序 我使用的是一个广告平台,但我不确定我是否愿意坚持使用它(也许我会决定以后再改变它) 为此,我想创建一个接口和一个实现它的类,调用平台的ads 我的想法是,我可以稍后从我的服务器加载另一个类文件(带有反射),以替换前一个类文件。这样,我就可以“动态”改变广告平台(例如-Admob/Airpush) 有人知道如何用Java加载远程类吗加载远程Java类,java,android,classloader,Java,Android,Classloader,我构建了一个android应用程序 我使用的是一个广告平台,但我不确定我是否愿意坚持使用它(也许我会决定以后再改变它) 为此,我想创建一个接口和一个实现它的类,调用平台的ads 我的想法是,我可以稍后从我的服务器加载另一个类文件(带有反射),以替换前一个类文件。这样,我就可以“动态”改变广告平台(例如-Admob/Airpush) 有人知道如何用Java加载远程类吗 您是否有任何代码示例显示它?您需要创建自己的类加载器,请查看 以下是一个示例(从中,还有其他具有托管URL的示例): 你们听说过称
您是否有任何代码示例显示它?您需要创建自己的类加载器,请查看 以下是一个示例(从中,还有其他具有托管URL的示例):
你们听说过称为“API”的发明吗?不要使用CORBA来做硬的事情,而是将您提供的Add封装在自己的API中
private void invokeClass(String path, String name, String[] args) throws
ClassNotFoundException,
NoSuchMethodException,
InvocationTargetException,
MalformedURLException,
InterruptedException,
IllegalAccessException {
File f = new File(path);
URLClassLoader u = new URLClassLoader(new URL[]{f.toURI().toURL()});
Class c = u.loadClass(name);
Method m = c.getMethod("main", new Class[]{args.getClass()});
m.setAccessible(true);
int mods = m.getModifiers();
if (m.getReturnType() != void.class || !Modifier.isStatic(mods) || !Modifier.isPublic(mods)) {
throw new NoSuchMethodException("main");
}
m.invoke(null, new Object[]{args});
m = null;
System.gc(); // uh-oh
}