我正在使用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库文件?
答案 0 :(得分:1)
为什么会这样?
如果查看URLClassLoader.addURL
,它只会将参数添加到要搜索的网址列表中。
如何检查swtFileName是否是有效的SWT库文件?
尝试加载应该存在的类:
try {
classLoader.loadClass("org.eclipse.swt.SWT");
} catch (ClassNotFoundException e) {
...
}