0

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 ライブラリ ファイルであるかどうかを確認するにはどうすればよいでしょうか。

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 に答える