0

我正在使用此处的代码动态加载适当的 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 库文件?

4

1 回答 1

1

为什么会这样?

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

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

尝试加载一个应该存在的类:

try {
    classLoader.loadClass("org.eclipse.swt.SWT");
} catch (ClassNotFoundException e) {
    ...
}
于 2012-11-02T07:12:12.377 回答