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

[Java3Djp:00130] Java3Dインストール日記(WindowsNT)



◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇ 掲載広告募集中     ¥ 10,000〜  ◇
◇ http://www.dns-ml.co.jp/ad-proto.html◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

○月×日

Java3D が動かないそうなので、客先で Windows NT の環境を調べた。

コマンドラインから java -version で java.exe のバージョンを調べると、
ちゃんと 1.2 と表示される。

C:\jdk1.2\lib\ext 配下と、C:\Program Files\JavaSoft\JRE\1.2\lib\ext 配下に
j3d*.jar をコピーしてみた。

C:\jdk1.2\demo\java3d\HelloUniverse ディレクトリーで、java HelloUniverse を実行すると

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Scene
GraphObject 
(これは手元に Windows NT が無いので Windows 95 で再現してみたエラーメッセージです。
実際は NoClassDefFoundError ではありませんでした)

どうも Java3D のクラスがロードできないようだ。

複数の java.exe が無いかどうか、Windows の [スタート]-[検索]-[ファイルやフォルダ]で
調べてみた。C:\WINNT\SYSTEM32 配下に java.exe が存在するようだ。

コマンドプロンプトで set コマンドを実行して、PATH を調べてみた。
PATH=の先頭に、あったあった C:\WINNT\SYSTEM32 が。

どうやら、jdk1.2 のインストーラーは、WINNT\SYSTEM32 配下に
 java.exe、javaw.exe をコピーするらしい。このディレクトリー配下に lib\ext が無いので、
Java3D のクラスがロードできなかったようだ。

とりあえず WINNT\SYSTEM32 配下の java.exe、javaw.exe を削除して、
path= に C:\jdk1.2\bin を含めて、無事 HelloUniverse は実行できた。

[疑問点]

1.なぜ、jdk1.2 のインストーラーは、WINNT\SYSTEM32 に java.exe をコピーするのか?
  (jdk1.2\bin にだけ存在する方が良いと思うのだが...)

2.なぜこのお客さんは C:\WINNT\SYSTEM32 を path= に含めていたのか?
  (path= に含めなくても、ここにある DLL はロードされると思うが...)

# 客先のマシンで作業していたら、「Java のように不安定なものを使うのって恐くないですか」
# と聞かれたので、「MFC みたいにダサダサのクラスライブラリーや、
# ダサダサのイベントモデルで仕事をするよりは幸せです」と口に出しそうになってしまいました。
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル8F    FAX 03-5362-9008