« 華麗なる Java | トップページ | ここにいるのは英雄などではない。ただの一人の男だ。
撃て! 臆病者め!! »

2008年12月13日 (土)

EclipseでJava3Dを使おう!

【ジュンク堂に行ってきました】

主に僕が出没するのは、地下1階のコンピュータ関連の棚 (もしくは数学/物理学/英語の棚。 いずれも地下1階) です。

今日も、C++ とか Java とか画像処理とかをひととおり物色し、ゲームプログラミング関連の書棚へ向かったところ、なにやらお詫びのポップが掲げられていました。

『ゲームプログラマになる前に覚えておきたい技術』 という本が品切れで、それに関する案内だったようです。 そんなに人気なのか……。

モノ作り産業って仕事に生き甲斐を感じる人が多いから激務にも耐えられるという闇のからくりが上手く働いて (ry

     ◆

【Eclipse で Java3D を使おう】

Eclipse で Java3D ライブラリを使おうとしたら躓いた (コンパイル時になんか変なエラーが出た)

もしかしたら地球上のどこかで同じように困っている人々がいるかも知れませんので、自分なりの解決策をここに載せておきます。

ここでは、

> Java3D をインストールしたはずなのに、(エラーを示す) 赤い波線が消えない

> ビルド・パスの追加って何?

> ビルド・パスを追加したのにコンパイル時におかしなエラーが出る

……といったトラブルに対応しています。 Java3D がインストール (Windows ならばダブルクリックするだけでOK) されている事を前提に話を進めますね。

     ◆

<<ライブラリの追加>>

(1) Java3D を使いたいプロジェクト名を右クリック

(2) 「ビルド・パス」 → 「ライブラリーの追加」 をクリック

スクリーンショット

(3) 「ユーザー・ライブラリー」 を選択

(4) 「設定 (フィルター済み)」 ダイアログで 「新規ユーザー・ライブラリ」 をクリック

(5) ユーザー・ライブラリー名を適当に (ここでは Java3D) と設定

(6) 「JARの追加」 をクリック

(7) ライブラリ (僕の場合は Java3D\1.5.1\lib\ext 内にあるすべての jar ファイル) を選択し、OK をクリック

スクリーンショット

これで、エディタ上でエラーを示す赤色の波線が消えてめでたしめでたし……そうは問屋が卸しません。

ここでコンパイルしようとすると、

2008/12/13 12:34:00 javax.media.j3d.NativePipeline getSupportedOglVendor
致命的: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
  at java.lang.ClassLoader.loadLibrary(Unknown Source)
  at java.lang.Runtime.loadLibrary0(Unknown Source)
  at java.lang.System.loadLibrary(Unknown Source)
  at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
  at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)
  at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
  at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
  at ○○.main(○○.java:x)

みたいなエラーメッセージが出てしまいます (出ない人はめでたしめでたし)

プログラミングに関してよく解らない方でも、「致命的」 という言葉にそこはかとない危機感を覚えられるのではないでしょうか。

Java3D の内部では Native なメソッドを呼び出して処理を行っているらしいのですが、どうやらその連携がうまく行っていないようです (僕の場合、Java3D をインストールしただけでは PATH が自動設定されず、ここで躓いた)

次はこれを解決してみましょう。

     ◆

<<環境変数 PATH に、DLL ファイルへのパスを追加>>

(1) 「実行」 メニューの 「構成および実行」 をクリック

(2) 「環境」 タブを選択

(3) 「新規」 をクリック

(4) 「変数名」 項目に 「PATH」 と入力し、その値を dll ファイルがあるディレクトリのパス (僕の場合は 「C:\Program Files\Java\Java3D\1.5.1\bin」) に設定。

スクリーンショット

(5) 「OK」 をクリック

     ◆

僕はこれで正しく実行できるようになりました。 ご参考までに。

|

« 華麗なる Java | トップページ | ここにいるのは英雄などではない。ただの一人の男だ。
撃て! 臆病者め!! »

コメント

初めまして。つ~たろと申します。

Java3Dの実習をしてたのですが、
この記事に紹介されてる致命的~に遭遇してしまい、悩んでたところ。
Google検索にてこちらのサイトを訪問、記事を読ませていただきました。
無事、うまく起動しました。
非常に参考になりましたヽ(´▽`)/

ありがとうございました~

投稿: つ~たろ | 2009年4月28日 (火) 16時10分

コメントありがとうございます。

> Java3Dの実習をしてたのですが、
> この記事に紹介されてる致命的~に遭遇してしまい、悩んでたところ。
> Google検索にてこちらのサイトを訪問、記事を読ませていただきました。

どうやら、複数のバージョンの JDK を共存させている環境に Java3D を入れようとすると、パスがうまく通らない場合があるようです。

これを書いた当初は 『自分用のメモ程度になればいいかな』 と軽く考えていたため、とりあえず動かすための情報しか載っていませんが、お役に立てた事を嬉しく思っております。

実習がんばって下さい ^^;

【p.s.】

Java3D に関する優れた文献がどんどん絶版になっていって寂しい限りです……。

投稿: たかゆき@ここの管理人 | 2009年4月28日 (火) 17時54分

It is great that people are able to receive the credit loans moreover, it opens completely new possibilities.

投稿: SandovalGILDA29 | 2011年12月31日 (土) 15時02分

自分のうまくいった例を紹介します。
eclipdeでプロジェクトを作成し、たとえばmy3dという名前だったとします。

で、下記のディレクトリにプロジェクトがあったとします。



E:\pleiades\workspace\my3d


Java3Dがインストールされたディレクトリから、以下のファイルを
j3dcore-ogl.dll
を、プロジェクトのbinフォルダ、
例えば今回の例でいくと
E:\pleiades\workspace\my3d\bin

に保存すると、動作しました。

投稿: Kuniyuki Hayashi | 2016年10月 1日 (土) 11時43分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/29834/26152304

この記事へのトラックバック一覧です: EclipseでJava3Dを使おう!:

« 華麗なる Java | トップページ | ここにいるのは英雄などではない。ただの一人の男だ。
撃て! 臆病者め!! »