[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