May 15, 2006
ClassLoader に関する参考資料をメモ
未だに ClassLoader を実装するとハマることがある。 何年実装やっているんだ・・・orz というわけで、ClassLoader に関する再勉強の必要性を強く感じて参考資料を集めてみた。
- JSR 924: Java Virtual Machine Specification
- http://www.jcp.org/en/jsr/detail?id=924
- The Java Virtual Machine Specification Second Edition
- http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html
- Java2 Platform SE 5.0 API Document - java.lang.ClassLoader
- http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ClassLoader.html
- The Apache Tomcat 5.5 Servlet/JSP Container Class Loader HOW-TO
- http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html
- developerWorks - クラス・ローディングとデバッグ・ツール
- http://www-06.ibm.com/jp/developerworks/java/060113/j_j-dclp1.shtml
- developerWorks - クラス・ローディングに関する基本的な例外
- http://www-06.ibm.com/jp/developerworks/java/060127/j_j-dclp2.shtml
ちなみに、今回ハマった状況はこういうもの。
「class A extends B」というクラスをロードする。
B をシステム ClassLoader がロード、A を自作 ClassLoader がロード。
特定環境下で 「A.class.getSuperclass」 が何故か java.lang.Object を返してくるという問題が発生。
結局のところ、ClassLoader の階層構造にミスがあったのだけれど、発生する環境としない環境があって結構手こずった。
教訓 - ClassLoader の階層構造はきちんと把握しよう。
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Misc/20060515_01.trackback
writeback message: Ready to post a comment.
