- PR -

package 宣言情報はclassファイルに書き込まれるの?

投稿者投稿内容
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-11-15 16:59

いつもお世話になっております。

package 宣言情報はcompilerに査証される外、実行する時もJVMに参照されるのでしょうか。

ご教授いただければ幸いです。
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-11-15 17:32
引用:

issekiさんの書き込み (2002-11-15 16:59) より:

package 宣言情報はcompilerに査証される外、実行する時もJVMに参照されるのでしょうか。



Javaのpackageは実行時のパスの情報を兼ねるので、そういう意味では参照されます(参照という言葉が正しいかどうかはわかりませんが)。
アヒル
会議室デビュー日: 2002/11/15
投稿数: 1
投稿日時: 2002-11-15 18:16
はじめまして,アヒルと申します.

便乗して質問したいのですが,
クラスローダを用いて動的にクラスを読み込んだ場合,
その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか?

変な事言ってるかもしれませんが,
動的に読み込むクラスを利用する場合,その保存場所ってどうするのかなぁ?
と思って質問させていただきました.

自分で実験しろ!って言われそうですが,
まだよくクラスの動的な読み込みについて理解できていないので・・・.
お願いします.
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-11-15 19:00
DaikiRyutoさん
さっそくごん返答おりがとうございます。

アヒルさん↓
>その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか?

うーん、複雑ですね。
どうなるでしょう。
ほかの方のレスを待ちまーす。
isseki
大ベテラン
会議室デビュー日: 2001/11/05
投稿数: 107
投稿日時: 2002-11-15 19:01
DaikiRyutoさん
さっそくごん返答おりがとうございます。

アヒルさん↓
>その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか?

うーん、複雑ですね。
どうなるでしょう。
ほかの方のレスを待ちまーす。
未記入
ぬし
会議室デビュー日: 2002/03/28
投稿数: 255
投稿日時: 2002-11-15 19:17
>クラスローダを用いて動的にクラスを読み込んだ場合,
>その読み込んだクラスの保存場所はパッケージ情報に依存するのでしょうか?
保存場所は通常はメモリ上(正確にはヒープなんで,ディスク上だろうが
別のマシン上だろうが仕様上は構わないはず.)だし,その管理方法は
実装依存です.

ちなみに,読み込まれるクラスファイルの存在場所でさえ,クラスローダ
の実装依存です.特にユーザー定義クラスローダでは,どこから
読み込むかはそのクラスローダ作成者が好きに決めて構いません.
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-11-15 22:12
・システムクラスローダは、無名パッケージの位置(=クラス情報を辿るルートの位置。UNIXやWINではCLASSPATH環境変数だが実装依存)を指定している。
・jarファイルの中の、あるいは指定ディレクトリからのパスなどを示すのはpackage情報
・ユーザクラスローダはわかりません。
だと認識してますが、違いますかね?
yu
ベテラン
会議室デビュー日: 2002/09/29
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2002-11-16 23:21
JavaVMを作っている者です。

クラスファイルの中には、パッケージ情報なんて書いてないですよ。
ぜ〜んぶ、絶対パス(完全修飾名っていうんでしたっけ)
で書いてあります。

例えば、String なら、java.lang.String と書いてあります。
パッケージ情報はソースを書く上での便宜でしか存在していないはずです。

スキルアップ/キャリアアップ(JOB@IT)