Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载远程Java类_Java_Android_Classloader - Fatal编程技术网

加载远程Java类

加载远程Java类,java,android,classloader,Java,Android,Classloader,我构建了一个android应用程序 我使用的是一个广告平台,但我不确定我是否愿意坚持使用它(也许我会决定以后再改变它) 为此,我想创建一个接口和一个实现它的类,调用平台的ads 我的想法是,我可以稍后从我的服务器加载另一个类文件(带有反射),以替换前一个类文件。这样,我就可以“动态”改变广告平台(例如-Admob/Airpush) 有人知道如何用Java加载远程类吗 您是否有任何代码示例显示它?您需要创建自己的类加载器,请查看 以下是一个示例(从中,还有其他具有托管URL的示例): 你们听说过称

我构建了一个android应用程序

我使用的是一个广告平台,但我不确定我是否愿意坚持使用它(也许我会决定以后再改变它)

为此,我想创建一个接口和一个实现它的类,调用平台的ads

我的想法是,我可以稍后从我的服务器加载另一个类文件(带有反射),以替换前一个类文件。这样,我就可以“动态”改变广告平台(例如-Admob/Airpush)

有人知道如何用Java加载远程类吗


您是否有任何代码示例显示它?

您需要创建自己的类加载器,请查看

以下是一个示例(从中,还有其他具有托管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
}