諦め切れずに食らいついてみる


 openmaliってのはこれもJavaのプロジェクトらしい(Open Math Library)が・・・っておい、これどうやってインストールするんだ?
もーワケ分からん!やめた!

と言ったが、念のためNetBeans6.5で再試行。もしかして6.5にはopenmali標準装備かも!


 失敗!


 甘かったね。|||orz|||


 で、上記のサイトを良く見てみるとvechmathのjarファイルがいくつか落ちている。
 とりあえず、「Subvertion」とかは無視して、「ドキュメント」の中に唯一あるvecmath-kh 1.0(=vecmath-kh.jar)をダウンロード。へぇ、khってKenji Hiranabeの意味なんだ。開発者に日本人名が見えなかったけど頑張ってるね日本人!とりあえず、Xith3Dと同じ場所に放り込む。(おや?もともとvecmath.jarってのは有るんだな。)そしてファイル実行。・・・変化なし。
 はい、NetBeans再起動!


 ・・・変化なし!


 ・・・まてよ?もともとvecmath.jarがあったのなら、vecmath-kh.jarをそれに上書きすればうまくいくかも。もちろん上書きはせず、古い方は退避させておく。で、ファイル実行。
・・・変化なし。
 はい、NetBeans再起動!


 ・・・変化なし!(じゃあ戻す・・・と。)


 うーん、じゃあ、Xith3Dの他のコマンドと同じようにimportしてやらないといけないのかな?
 でもそれは変だよね。サンプルでXith3Dはimportしないといけないのにその前提となるベクトル関数がサンプルコードにimportされてないんだから、更に追加しなければいけないなんてありえない。でも試す。

import org.openmali.types.twodee.ExtPositioned2i;

と、追加したが、赤字の所でNetBeans6.5.1がパッケージorg.openmali.types.twodeeは存在しませんと言ってきた。


 ハイお手上げです。


 ・・・ありえないよねー、絶対おかしいよ。これ壊れてるんじゃね?と言いながらセッティングのページを「openmali」で検索してみる。
 うおぃ、openmaliあるやんけ!

Since the generated project is just a regular java application, we need to add support for Xith3D to th project by specifying the dependencies and the runtime parameters needed for a Xith3D appliction to run properly. First add a new Library to your project by right-clicking the "Libraries" node of your project and choose "Add Library...". Click on [Create] and enter "xith3d" as "Library Name" and hit [OK]. Add the jars from the "libs" and "third-party" directory in "xith-tk/dist/release" (when using SVN) or in the downloaded release. Here is the list to add:

[path to the release]/libs/xith3d.jar
[path to the release]/third-party/jagatoo.jar
【省略】
[path to the release]/third-party/math/openmali.jar
【省略】
[path to the release]/third-party/xml/jibx/jibx-run.jar

                                                                                                        • -

 発生されたプロジェクトがちょうど普通のジャバアプリケーションであるので、我々は属国(訳注:依存関係)を指定することによってXith3Dに対する支持(訳注:サポート)をXithプロジェクトに加える必要があります、そして、実行時パラメータはXith3D applictionのきちんと走るために必要がありました。最初はあなたのプロジェクトの「図書館(訳注:ライブラリ)」ノードを右クリックすることによって新しい図書館をあなたのプロジェクトに加えて、選択をします「図書館を加えます...」。[つくります(訳注:作成)]にクリックして「図書館Name」として「xith3d」に入って、[OK]を打ってください。「xith-tk/dist/release」(SVNを使うとき)で、または、ダウンロードされたリリース(訳注:今回ダウンロードしたXith3Dのzipを解凍したモノ)内の、「解放(訳注:libs)」と、「第三者の(訳注:third-party)」ディレクトリから、ジャー(訳注:jar)を加えてください。加えるリストは、ここにあります:
【リスト省略】

 うーむ。SVNの説明の続きだと思って無視していたのだが、ダウンロードとSVNの両方に必要な作業のようだ。やっぱり思い込みは良くないね。ちゃんと目を通さないと・・・。


 つまり俺のミスか!orz


 まあ、いつのものパターンなわけだが。
 さて、Xith3D.jarも入っているので、前回「C:\Program Files\Java\jdk1.6.0_07\jre\lib\ext」に放り込んだjarファイルを一時退避させてとりあえず必要なXith3D.jarとopenmali.jarのみを加えて様子を見る。

Exception in thread "main" java.lang.NoClassDefFoundError: org/jagatoo/datatypes/Enableable
at java.lang.ClassLoader.defineClass1(Native Method)
【以下長いので省略】

 うお!いっぱいエラー出た。む、jagatooは上のセッティングのページでライブラリに加えるように出てたjarファイルのアドレスにあったな・・・。やっぱりリスト全部のjarファイルを加えないとだめか。
 なんと既に新規作成した「xith3d」ライブラリにjarファイルを追加することはできないらしく、一旦削除(ツール→ライブラリで)して「xith3d」ライブラリを作り直さなければいけない羽目に陥った。という訳で横着はいけないという教訓の下、ライブラリを再設定。*1そして実行・・・やっぱりライブラリエラーが出るのでNetBeans再起動。


 あれ?

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
【以下省略】

 ええええ?jogl.jarならばさっきライブラリに入れたぞ!プロジェクトノードのライブラリにもちゃんと載ってるのに!?


 もーやだ!もーわからん!


 と、思ったが、最後の気力を振り絞ってセッティングページを読み下したら、

Now if you try to run this code you will get an Error like this:

Exception in thread 'main' java.lang.UnsatisfiedLinkError: no jogl in java.library.path
                                                                                                • -

現在、あなたがこのコードを走らせようとするならば、あなたはこのようにErrorを得ます:
【エラー省略】

 おおう、まったく同じ症状じゃないか!おのれもっと早く気付いてれば余計な試行錯誤もなかったのに・・・orz。
 どれどれ対策は?

Now we have to use the abused "xith3d.natives" library as java.library.path. To do this, select the "Projects" tab and right-click on your projects root node. Select "Properties" and navigate to the "Run" category.On the panel you see several options regarding the configuration of your application. One of them is "VM Options. Fill in the following line

-Djava.library.path="${libs.xith3d.natives.classpath}"



(including the quotes!) and hit [OK]

                                                                                                • -

現在、我々はjava.library.pathとして罵倒(訳注:誤用)された「xith3d.natives」図書館を使わなければなりません。こうするために、「プロジェクト」タブを選んで、あなたのプロジェクト根ノードを右クリックしてください。「特性(訳注:プロパティ)」を選んで、「動く(訳注:実行)」カテゴリーに操縦してください。パネルの上で、あなたはあなたのアプリケーションのコンフィギュレーションに関して、いくつかのオプションを見ます。彼らのうちの1人は、VMオプションです。以下の線の一杯(訳注:以下ように行を満たす)

-Djava.library.path="${libs.xith3d.natives.classpath}"

(引用を含むこと!)そして、打たれます[OK]

 言われたとおりにしたが、実行しても結果は変わらず。しょうがないのでNetBeans6.5を再起動。しかしやっぱり結果は同じ。セッティングページにもこれについてはもう何も書いてないし・・・ダメかorz。(ガックリ)

*1:良く考えたらツール→ライブラリでXith3Dライブラリを編集可能じゃないか・・・アホだなぁ俺