java Method.invoke():如何检查是否指定了有效的jar?

时间:2012-11-02 05:27:56

标签: java reflection jar swt

我正在使用here中的代码动态加载适当的SWT库。

Method addUrlMethod = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
addUrlMethod.setAccessible(true);
....
URL swtFileUrl = new URL("rsrc:" + swtFileName);
addUrlMethod.invoke(classLoader, swtFileUrl);

现在只是为了实验我将swt_win32_x86.jar文件更改为空文件。但是行“addUrlMethod.invoke(classLoader,swtFileUrl);”不会抛出任何异常。

为什么会这样?如何检查swtFileName是否是有效的SWT库文件?

1 个答案:

答案 0 :(得分:1)

  

为什么会这样?

如果查看URLClassLoader.addURL,它只会将参数添加到要搜索的网址列表中。

  

如何检查swtFileName是否是有效的SWT库文件?

尝试加载应该存在的类:

try {
    classLoader.loadClass("org.eclipse.swt.SWT");
} catch (ClassNotFoundException e) {
    ...
}