JSObject?共通 DOM API?

くだんのこのアプレットからDOM操作を行うための方法を記したページによると、

http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/java_js.html

アプレットからDOM操作を行うためには「JSObject」かDOMServiceを初めとする「共通 DOM API」を利用するらしい。

さしあたってAjadの可能性を検証するにあたってどっちを使うべきか。

なんとなく、パッケージにおもいっきり「netscape」とか書いてあるJSObjectより、「org.w3c.dom」とかなってる共通 DOM APIの方が将来性豊っぽい。JDKにもデフォで入ってるし。

うえに、我がMacJREを探してみるに、なんかJSObjectが入ってそうなjarが見つからない。

ので、とりあえず共通 DOM APIを試してみることにした。

どう頑張ってもDOMService.getService()を実行しようとするとDOMUnsupportedExceptionがスローされる。どうもRuntimePermissionが絡んでいるらしく、色々と調べてみるにポリシーファイルを書かねばならんっぽい。

それは微妙だ

アプレットの実行環境毎にポリシーファイルを設定して回らねばならないなど、微妙極まりない。こうなっては仕方が無い。意地でもJSObjectを試してみる他に道は無さそうなので、もう一度くまなく怪しそうなjarファイルを探してみることにした。

よくよく見るとこんなところにこんなものを発見した。

 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/lib/jaws.jar

「/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/」の方にはjaws.jarは無いのが非常に気にかかるのだが、この際仕方が無ので、このjarをeclipseアプレット用のプロジェクトにインポートしてビルドパスに加えてみた。

なんだかJSObjectはJSObjectでもsunのJSObjectしか含まれておらず、netscape.javascript.JSObjectは見つからなかった。仕方が無いのでもう一度よく調べてみると、

 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/lib/netscape.jar

なんていうあからさまにアヤシイjarが・・・さっそくeclipseにインポートしてビルドパスを通してみると・・・

おぉぉぉぉぉぉぉっ!

ついに念願のnetscape.javascript.JSObjectをMacでも発見しました!!

そんな訳で次回は、この「netscape.jarに含まれるnetscape.javascript.JSObject」を利用して、クライアント内でのシンプルなDOM操作に挑戦してみたいと思います。