- - PR -
独自クラスローダで外部 Jar に含まれるクラスを使用するには?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-26 11:59
VMにおける「問題」ではなくVMの仕様ですので、 VMの仕様に合うように作成するべきだと思います。 質問者は外部jarのインスタンスが欲しいとの事ですので、 外部プロセスのインスタンスが欲しい場合、 VM間通信を行わなければいけません。 他にも今回の件には該当しないかもしれませんが、 トランザクションやリソースの衝突などの問題も解決しなければいけません。 ですので、今回の件では外部プロセスの起動は向かないと思います。 単純にmainメソッド経由で起動したいだけなら 外部プロセス化でもいいと思います。 | ||||||||||||
|
投稿日時: 2005-05-25 20:01
まさです。
先日での内容と多少異なってしまうのですが、 外部の LookAndFeel をプラグインのような形でアプリケーションに適用したいと思っています。 しかし、この場合も外部の Jar をうまく読めないようです。
処理後、ComponentUI が無いとかで Error がトレースされます。 下記はサンプルコードですが、 (1)、(2) を設定ファイルに記述しておいてアプリケーションでそれを読み込んだら 外部 Jar 内の LookAndFeel を設定したいんです。 このサンプルなら、別プロセスじゃだめな理由が ぽん様にもご理解いただけるのではと思います。 下記のサンプルコードのような手順で処理をしているのですが、 LookAndFeel を外部 Jar から取り込めるようにはできないんでしょうかね。
| ||||||||||||
|
投稿日時: 2005-05-26 14:42
classLoaderというクラスローダのインスタンスを作ってL&Fに設定しても、
JFrameなどそれぞれのインスタンス作成時もそのclassLoaderが見えてないと 指定したUIの部品はできません。 そうすると非常に面倒ですがUIの部品1つ1つをclassLoaderでインスタンス化 していくか、もしくは手っ取り早い方法はclassLoaderを作成後、 現在のスレッドのクラスローダをclassLoaderに置き換えてみればうまくいくかもしれませんね。 ThreadクラスのsetContextClassLoaderでできるんじゃないでしょうか? がんばって見て下さい。 | ||||||||||||
|
投稿日時: 2005-05-27 10:21
お世話になります。まさです。
できちゃいました。 (^^)v setLookAndFeel 周りを次のようにしました。
ひとつ心配事があります。 setLookAndFeel 後、上記のコメントの行で 基のクラスローダに戻そうとすると今まで通りエラーが出ます。
の部分で、基のコンテキストクラスローダを親クラスローダに指定しているので 基に戻す必要は無いのかなと考えていますが、どうなんでしょうか? 後々、基のクラスローダに戻した方がいいのでしょうか? |