我有一个运行且经过测试的代码,我可以将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执行并使用其余的代码?
非常感谢提前 此致