首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎样 在代码中加载一个Jar包

2012-03-29 
请教高手 怎样 在代码中加载一个Jar包现在要实现一个功能:给一个Jar的包 A.jar 要在我们的代码中加载(不是

请教高手 怎样 在代码中加载一个Jar包
现在要实现一个功能:

  给一个Jar的包 A.jar 要在我们的代码中加载(不是用工具加载,而是写代码加载),用那个方法或类来实现?

  要求能运行A.jar其中的方法

[解决办法]
用到哪个类就Class.forName()加载
[解决办法]
如果只是要用到A.jar里的方法,没必要这样做。直接导入就行了。
如果是要启动运行A.jar,可以通过命令来现实调用。
Process pr = Runtime.getRuntime().exec("cmd.exe /c JAVA -jar \"" + path + "/A.jar\"");path是jar的路径。
[解决办法]
写代码加载?我就知道Runtime.getRuntime().load("A.jar");
[解决办法]
URLClassLoader 自己去写吧:

Java code
import java.net.URL;import java.net.URLClassLoader;public class ClassLoaderTest {    public static void main(String[] args) throws Exception {        URL[] url = { new URL("file:D:/ant/gao-util/dest/gao-jpa.jar") };        URLClassLoader classloader = new URLClassLoader(url);                Class<?> clazz = classloader.loadClass("net.blogjava.frankiegao123.jpa.query.DateQuery");        Object dateQuery = clazz.newInstance();        System.out.println(dateQuery);    }}
[解决办法]
Java code
    public static void main(String[] args) {        try {            URL url = new URL("file:///D:/workspace/test/bin/test.jar");            URLClassLoader urlCL = new URLClassLoader(new URL[] { url });            Class c = urlCL.loadClass("TestClassA");            Method m = c.getMethod("method");                        m.invoke(c.newInstance(), null);        } catch (Exception e) {            e.printStackTrace();        }    } 

热点排行