回答編集履歴
1
文法の修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
自己解決しました
|
2
2
|
どうやらJarFileClassLoaderでは独自のClassLoaderを作ってしまうらしく
|
3
|
-
importは同じクラスに見えますがClassLoaderが違うと同じクラスとは扱えないということだったみたいです。[
|
3
|
+
importは同じクラスに見えますがClassLoaderが違うと同じクラスとは扱えないということだったみたいです。[その記事](https://stackoverflow.com/questions/34553597/java-lang-classcastexception-com-sun-proxy-proxy47-cannot-be-cast-to)
|
4
4
|
ということでClassLoader loader = new JarFileClassLoader(new File("test.zip"), ClassLoader.getSystemClassLoader());とせず、
|
5
5
|
ClassLoader loader = new URLClassLoader(new URL[] {new File("test.zip").toURL()},this.getClass().getClassLoader());
|
6
6
|
としてClassLoaderを作れば外部ファイルのClassLoaderでも同じClassLoaderとして扱ってくれるようになり、import先が同じものになりました。
|