通过jnlp动态加载jar文件

时间:2013-07-30 15:27:49

标签: java jnlp urlclassloader

我有一个运行且经过测试的代码,我可以将jar文件和所有依赖项加载到类路径中。

import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;


public URLClassLoader loadjarFile(String path) throws IOException {

        URLClassLoader sysLoader;
        URL u = null;

        try {

            File file = new File("D:\\test\\mytest.jar");
            u = file.toURI().toURL();
            sysLoader = (URLClassLoader)ClassLoader.getSystemClassLoader();

            Class sysclass = URLClassLoader.class;
            Class[] parameters = new Class[] { URL.class };
            Method method = sysclass.getDeclaredMethod("addURL", parameters);

            method.setAccessible(true);
            method.invoke(sysLoader, new Object[] { u });

        } catch (Throwable t) {
            t.printStackTrace(System.err);
            throw new IOException("Error, could not add file " + u.toExternalForm() + " to system classloader");
        }

        return sysLoader;
}

我现在需要的是不要将.jar文件放在本地路径中,而是直接通过调用.jnlp的按钮进入浏览器时执行。

基本上是打电话给的 xpto / test.jnlp 即可。将文件file = new File(“D:\ test \ mytest.jar”)替换为URLfile = new URL(“xpto / test.jnlp”)。

有可能吗?如何调整上面的代码以通过jnlp执行并使用其余的代码?

非常感谢提前 此致

0 个答案:

没有答案