【问题标题】:Android - Load external .jar at runtimeAndroid - 在运行时加载外部 .jar
【发布时间】:2015-11-28 09:46:23
【问题描述】:

我想在运行时加载外部库。

这里是来源:

import java.lang.*;
import java.net.*;
import java.io.*;

public class Main {
    public static void main (String args[]) throws Exception {
        System.out.println("Load support library");
        File file = new File("/sdcard/lib/android-support-v4.jar");
        URL url = file.toURI().toURL();
        URL[] urls = {url};
        URLClassLoader cl = new URLClassLoader(urls);
        Class clazz = cl.loadClass("android.support.v4.view.ViewCompat");
    }
}

此库是 Google 的支持库。 它位于“/sdcard/lib/android-support-v4.jar”。

我想获取“android.support.v4.view.ViewCompat”类,但源总是抛出 ClassNotFoundException。

【问题讨论】:

    标签: java android urlclassloader


    【解决方案1】:

    JCL class loader framework 怎么样。 用法示例:

    JarClassLoader jcl = new JarClassLoader();  
    jcl.add("myjar.jar"); //Load jar file  
    jcl.add(new URL("http://myserver.com/myjar.jar")); //Load jar from a URL  
    jcl.add(new FileInputStream("myotherjar.jar")); //Load jar file from stream  
    jcl.add("myclassfolder/"); //Load class folder  
    jcl.add("myjarlib/"); //Recursively load all jar files in the folder/sub-folder(s)  
    
    JclObjectFactory factory = JclObjectFactory.getInstance();  
    
    //Create object of loaded class  
    Object obj = factory.create(jcl,"mypackage.MyClass");
    

    【讨论】:

    • 有没有办法在不使用其他框架的情况下加载外部库?我不想添加其他库..
    猜你喜欢
    • 2015-09-05
    • 2023-03-03
    • 2017-07-08
    • 1970-01-01
    • 2011-02-24
    • 2012-04-11
    • 2011-09-18
    • 1970-01-01
    • 2020-12-17
    相关资源
    最近更新 更多