[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10772] MJP Item6/Item13 のまとめ



 井上泰です。

MJP について、その後わかったことを書きます。

----------------------
Item 13
cut both ways は、「cut one's way: 道を切り開く」の意味ではありませんで
した。
http://www.m-w.com/cgi-bin/dictionary
cut both ways : to have both favorable and unfavorable results or
implications
好ましい結果をまねくことも、好ましくない結果を招くこともある。

-----------------------
Item 6/Item 13 のまとめ

1. Java2(jdk1.2以降)のクラスローダ、ロード順

クラスローダは、以下の(1),(2),(3)の順に親子関係がある。クラス探索は親の
クラスローダを優先。

(1) ブートストラップ クラスローダが、ブートストラップクラスをロードする
(2) 拡張クラスローダが、インストール型オプションパッケージをロードする
(3) アプリケーション クラスローダが、ユーザーのクラスをロードする
(J2EE製品では(3)のなかにさらにクラスローダの階層があり探索順序を管理する)


2. クラスロードの制御

2.1 ブートストラップ クラスの制御
(1) java -Xbootclasspath: による置き換え(非標準オプション)
jdk1.2では、この方法でCORBAクラスの置き換えをしたことがある
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/java.html#options
(2) jdk1.4よりサポートされたESOM(承認済み標準のオーバーライド機構)を利用
(MJP Item 6)
ESOMの対象クラスはすべて、rt.jarにまとめられていることを確認した。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/standards/index.html

2.2 拡張クラスの制御
以下の3.(1)インストール型オプションパッケージの管理で行う。

2.3 アプリケーション クラスの制御
(1) java <クラス> コマンド実行では、CLASSPATHまたは、 java -cp .. による
クラス探索
(2) java -jar ... コマンドj実行では、CLASSPATHからクラスを探索しない(以
下の3.(2)の説明を参照)


3. MJP Item13のオプションパッケージ(拡張機能機構)
jdk1.4より前のバージョンでは「標準拡張機能」として知られてきた。拡張機能
機構はオプション・パッケージとも呼ばれる。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/extensions/index.html

(1) インストール型
(2) ダウンロード型

(jarにdllなどネイティブコードを含めることが出来ないのは、ネットワーク・
ダウンロードの場合でした)


-------------------------------------------------------------------------------
4. J2EEのクラスローディング

4.1. J2EEの仕様

(1) Java 2 Platform, Enterprise Edition (J2EE) Specification
http://java.sun.com/j2ee/1.3/download.html#platformspec
J2EE.6.2.4.8 Context Class Loader
J2EE.8.1.1.2 Dependencies (jarの依存関係についてmanifest.mfのClassPath:指定)

(2) Java Servlet Specification
http://jcp.org/aboutJava/communityprocess/first/jsr053/index.html
SRV.3.7 Reloading Considerations
SRV.9.7.2 Web Application Classloader

(3) Enterprise JavaBeans(TM) Specification 2.0
http://java.sun.com/webapps/download/Display
P. 495にクラスローダの記述あり

4.2. ベンダーのクラスローダ資料

(1) Tomcatのクラスローダ資料
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html
(2) WebSphereのクラスローダ資料
http://publib7b.boulder.ibm.com/webapp/wasinfo1/index.jsp?deployment=ApplicationServer&lang=ja
[アプリケーション]->[アプリケーション・サービス]->[クラス・ロード]
(3) Weblogicのクラスローダ資料
http://edocs.beasys.co.jp/e-docs/wls/docs81/programming/classloading.html#986244