teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文法の修正

2018/02/05 14:29

投稿

katliner
katliner

スコア13

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  自己解決しました
2
2
  どうやらJarFileClassLoaderでは独自のClassLoaderを作ってしまうらしく
3
- importは同じクラスに見えますがClassLoaderが違うと同じクラスとは扱えないということだったみたいです。[参照先](https://stackoverflow.com/questions/34553597/java-lang-classcastexception-com-sun-proxy-proxy47-cannot-be-cast-to)
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先が同じものになりました。