- - PR -
package 宣言情報はclassファイルに書き込まれるの?
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-11-15 16:59
いつもお世話になっております。 package 宣言情報はcompilerに査証される外、実行する時もJVMに参照されるのでしょうか。 ご教授いただければ幸いです。 | ||||
|
投稿日時: 2002-11-15 17:32
Javaのpackageは実行時のパスの情報を兼ねるので、そういう意味では参照されます(参照という言葉が正しいかどうかはわかりませんが)。 | ||||
|
投稿日時: 2002-11-15 18:16
はじめまして,アヒルと申します.
便乗して質問したいのですが, クラスローダを用いて動的にクラスを読み込んだ場合, その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか? 変な事言ってるかもしれませんが, 動的に読み込むクラスを利用する場合,その保存場所ってどうするのかなぁ? と思って質問させていただきました. 自分で実験しろ!って言われそうですが, まだよくクラスの動的な読み込みについて理解できていないので・・・. お願いします. | ||||
|
投稿日時: 2002-11-15 19:00
DaikiRyutoさん
さっそくごん返答おりがとうございます。 アヒルさん↓ >その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか? うーん、複雑ですね。 どうなるでしょう。 ほかの方のレスを待ちまーす。 | ||||
|
投稿日時: 2002-11-15 19:01
DaikiRyutoさん
さっそくごん返答おりがとうございます。 アヒルさん↓ >その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか? うーん、複雑ですね。 どうなるでしょう。 ほかの方のレスを待ちまーす。 | ||||
|
投稿日時: 2002-11-15 19:17
>クラスローダを用いて動的にクラスを読み込んだ場合,
>その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか? 保存場所は通常はメモリ上(正確にはヒープなんで,ディスク上だろうが 別のマシン上だろうが仕様上は構わないはず.)だし,その管理方法は 実装依存です. ちなみに,読み込まれるクラスファイルの存在場所でさえ,クラスローダ の実装依存です.特にユーザー定義クラスローダでは,どこから 読み込むかはそのクラスローダ作成者が好きに決めて構いません. | ||||
|
投稿日時: 2002-11-15 22:12
・システムクラスローダは、無名パッケージの位置(=クラス情報を辿るルートの位置。UNIXやWINではCLASSPATH環境変数だが実装依存)を指定している。
・jarファイルの中の、あるいは指定ディレクトリからのパスなどを示すのはpackage情報 ・ユーザクラスローダはわかりません。 だと認識してますが、違いますかね? | ||||
|
投稿日時: 2002-11-16 23:21
JavaVMを作っている者です。
クラスファイルの中には、パッケージ情報なんて書いてないですよ。 ぜ〜んぶ、絶対パス(完全修飾名っていうんでしたっけ) で書いてあります。 例えば、String なら、java.lang.String と書いてあります。 パッケージ情報はソースを書く上での便宜でしか存在していないはずです。 | ||||
