Java Web Start と Java 3D の関係

Java 3D を使う上で、障害になるのが、作成したプログラムの配布方法。
一つ前のエントリの方法で j3dcore-*.dll をバンドルして、manifest.mf を

Manifest-Version: 1.0
Bundle-NativeCode: j3dcore-d3d.dll;j3dcore-ogl.dll;j3dcore-ogl-cg.dll
Class-Path: j3dcore.jar j3dutils.jar vecmath.jar
Main-Class: Main

のようにして Executable JAR を作成、j3d*.jar と同じフォルダに置いて実行すれば簡単に動作するので、これをまとめて配布はできるのですが、この方法だと Java 3D のライセンス(LICENSE-Java3D-v*.txt: 2.a – 2.e)が懸念事項になります。
 
そこで、もう一つの配布方法として、公式のデモでも使われている手法、
Java Web Start を使うことにしました。
 
以下参考にした犀角(Diceros Horn)のとくながさんの記事へのリンクです。
 
– Java Web Start リンク集 ( 犀角(Diceros Horn) )
– Java Web Start を始めてみる
– Java Web Start のサンプル
– JWS で jar ファイルに含まれるファイルにアクセスするには

JNI で DLL, SO 等のネイティブライブラリを JAR に含めるには

作成したクラスを JAR にまとめる際にネイティブライブラリをルートディレクトリにいれて
manifest.cf を以下のようにすれば、任意のネイティブライブラリ(下の例では a.dll, b.dll, c.dll) を含めた状態で実行可能な JAR が作成可能です。

Manifest-Version: 1.0
Bundle-NativeCode: a.dll;b.dll;c.dll
Main-Class: Main

作成時のファイル構造:

<root directory>
– Main.class
– a.dll
– b.dll
– c.dll
– manifest.cf

作成コマンド:

jar cmf manifest.cf out.jar Main.class a.dll b.dll c.dll

 
参考:
– How to set Bundle-NativeCode in manifest file in JES? (Sun Developer Forums)

Web API ネタ

– Geocoding API
書式: http://www.geocoding.jp/?q=<キーワード>
指定したキーワード(住所、地名、駅など)を持つ場所の座標(経緯度)を検索して XML で返します。
– Google CodeSearch
書式: http://www.google.com/codesearch/feeds/search?q=<キーワード>
指定したキーワードを、公開されているソースコードから検索して、該当したソースコードの URL を RSS フィード(Atom 1.0)で返します。
Koders.com なんかの Google 版ですね。
詳細:
  – Google CodeSearch Data API Overview
  – Google CodeSearch の使用法(Zend Framework)
  
 
Web API の動向については using API が参考になります。

Windows XP SP2 でプログラム実行時のファイアウォールブロックイベントを記録する

「Windows ファイアウォールの通知を有効または無効にする(Microsoft Technet)」によると、
コントロールパネル -> 管理ツール -> ローカルセキュリティポリシー を実行して
セキュリティの設定 -> 監査ポリシー -> ポリシーの変更の監査 を、
成功、失敗時に監査するようにすることで記録できます。

ちなみにイベントログは「コンピュータの管理」または「管理ツール」から、「イベントビューア」のセキュリティログで見ることができます。

Java で Ajax

– JavaをJavaScriptに変換するグーグルのツールを使ってみよう
GWT (Google Web Toolkit), おもしろい。
 
参考:
– Google Web Toolkit 公式サイト
 
– Googlipse (公式または Sourceforge.net)
  Eclipse 用 GWT プラグイン。
 
– Google Web Toolkitを使ってJavaでAjax開発(All About)
  Googlipse を使って開発するときの手順が参考になります。
  この記事ではデプロイについては方法が書かれていませんが、仮想ブラウザで実行中に、仮想ブラウザの上部の「Compile/Brose」ボタンでデプロイできます。詳しくはGooglipse 公式の Docs を参照のこと。
 
– Google Web Toolkit 評価(Cybozu Deveoloper Network)

Java 6 とニュースサイト

@IT を見ててようやく気づいたのですが、12/12 に Java SE 6 がリリースされてました。
というわけで…
 
– 待望の Java SE 6 でパーシステンス(@IT)
この連載の第1回で触れられている、Scripting APIs(javax.script)のプロジェクトが興味深いです。
 
ついでに…
– Java News(Java に関する最新ニュース)
Java とネット開発関係の最新ニュース。

RSS4J がうるさいのでパッチを当てました

RSS フィードを読むのに RSS4J(要 Xerces) を採用したのですが、なぜか

RssParser.parseRss( … );

を呼び出す都度、

date: 2006-11-24T14:09:40+09:00

のように、RSS feed 中の日付を出力するようになっていました。
煩いし、これはちょっと都合が悪いなので調べてみると…

$ grep -rn System.out.print rss4j
rss4j/src/churchillobjects/rss4j/model/DateLanguageUtil.java:202: System.out.println(“\n\n date: “+date);

と、churchillobjects.rss4j.model.DateLanguageUtil で System.out.println していたので、この行をコメントアウトし、このクラスだけ再コンパイルして対応しました。一応変更適用済のバイナリを置いておきますので、よろしければどうぞ。
 
rss4j092p.zip
 
参考:
– Greenery – RSS4j v0.92-JAVA/RSS4j-Wiki
– RSS4J, Feed Parser, Informa = Java の RSS ライブラリ(Goodpic)
– @IT:Java TIPS — サーブレットでRSSフィールドを配信する