JOGLをつかってJavaでOpenGL
ある周期でやってくる「3Dコンピュータグラフィックスやってみたいな病」がひょうんなことから再発(w。
理由は、JOGLのバージョン1.0.0がリリースされたためです。いつ正式リリースされたのでしょうか?
待ち続けているときにはなかなかリリースされず、忘れたことにリリースされているとは、なんとも肩透かしを食らったような気分です(w。
JOGLはJavaからネイティブのOpenGL APIを利用するためのライブラリです。
joglを利用するためには、JOGLのサイトから入手したライブラリをコピーするだけです。早速、導入開始です。
<JOGLをインストール>
JOGLのサイトの右中段にあるDOWNLOADSの項目からCurrent rerease buildをクリックします。開いたページで、OSとCPUを確認して利用するファイルを決めてください。
私の場合は、OSが「WINDOWS XP」、CPUが「X86」なので、次のファイルを入手しました。
○jogl-1_0_0-windows-i586.zip
次に、ダウンロードしたファイルを展開します。展開するとlibというディレクトリが作られて、その中に、次の4つのファイルがあると思います。
○jogl.jar
○jogl.dll
○jogl_awt.dll
○jogl_cg.dll
これらのファイルをJAVA_HOME/jre/lib/extにコピーしてください。
(注)JAVA_HOMEは、JDKをインストールしたディレクトリです。
以上でインストール完了です。簡単ですね。
<インストールの確認>
インストールがきちんとできているか確認するために、JOGLのデモを実行してみましょう。
先ほどJOGLをダウンロードしたページから次のファイルを入手します。
○jogl-demos.zip
展開するとlibのディレクトリが作られその中に、次の3つのファイルがあることを確認してください。
○jogl-demos.jar
○jogl-demos-data.jar
○jogl-demos-util.jar
次に、コマンドプロンプトを起動して、jogl-demos.zip展開してできたlibのディレクトリに移って次のコマンドを実行してください。
java -classpath jogl-demos.jar demos.gears.Gears
このとき、赤、青、緑の3つのギアがかみ合って回っているデモがきちんと起動すれば、インストールは成功です。
<(補足)エラーに対処>
残念ならがら、私の場合は一回ですんなりインストールとはいきませんでした(TT)。
コマンドを実行したところ、次のようなエラーが表示されました。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GL
EventListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
いろいろ調べた結果、java(コマンド)がJDKのjavaではなく、JRE(Java Runtime Environment)のjavaを先に見つけているためだと言う結論にいたりました。対策はとしては、以下のものが考えられます。
(1)JREを全消しする
(2)JREの方にあるlib/extにJOGLのファイルをコピーする
私は(1)の方法を選択しました。ちょっと力ずくでしたが・・・
この他に、JDKのjavaを優先的に利用できる方法をご存知の方、ぜひお教えください<(__)>。
JOGLをつかって簡単なコードを、早速書いてみました。その様子はまた別の機会にでも。
「Rubyの輝きに魅了される」で紹介したRubyにつづき、これまたおもしろいものを手に入れたという感じです。