ごめんなさい。この日の夜にこちらの記事を発見しました。Processing1.0.7を導入すれば64 bit modeのままで問題なくBlueCoveが利用できます。以下は。。。ま、そんなこともあったんだな。。。ということで。本当に最近のソフトウェアの動向は1ヶ月未満で変わって行く。。。フォローするのは大変です。
世の中シルバーウィークですね。我が家は子供が小さいのと、上の子が部活なのでしばらく外出できません。。。渋滞に巻込まれることもなく。。。家でゴロゴロしています。そうはいっても、来週日曜日は大阪で出張講義。やることは決めたし、材料もあるから。。。とさぼっていました。そろそろ準備しようとmacbook airのbluetoothを久々に「入」にして、wiiリモコン(このときはバランスボード)を接続してみると。。。以下のようなエラーが。
Native Library bluecove not available
!! There may be no USB dongle/device. !!
java.lang.IllegalStateException: Bluetooth failed to initialize. There is probably a problem with your local Bluetooth stack or API.
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:74)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:301)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:290)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:284)
at lll.wrj4P5.Wrj4P5.connect(Wrj4P5.java:278)
at wiifit_test.setup(wiifit_test.java:28)
at processing.core.PApplet.handleDraw(PApplet.java:1403)
at processing.core.PApplet.run(PApplet.java:1328)
at java.lang.Thread.run(Thread.java:637)
Caused by: javax.bluetooth.BluetoothStateException: BlueCove library bluecove not available
at com.intel.bluetooth.BlueCoveImpl.loadNativeLibraries(BlueCoveImpl.java:381)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:434)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at wiiremotej.WiiRemoteJ.(WiiRemoteJ.java:67)
... 8 more
「え、えーーーー!、だめじゃん。。。」
10.5に戻そうかと思いながら、google様の力を借りてみますと。Snow Leopard+Bluetoothでいろいろ*1など不具合の報告が見つかりました。
本家のProcessing.orgのForumに答えがありました。試してみるとビンゴ!この場合は、Wiiリモコンを接続するために利用しているBluecove(Java library for Bluetooth)が64 bit modeに対応していないことが原因だったようです。対策としてはProcessing.appを32 bit modeで起動すればいいと。
32 bit modeで起動する手順は以下の通りです。
Finderでアプリケーション→ユーティリティ→Java Preferences.appを選択して起動します。すると以下のような画面が表示されます。
下のJavaアプリケーションで64-bitの行を下に、あるいは32-bitを上に、ドラッグ&ドロップして32-bitを上に移動します。以下のような画面になります。
上記のように変更後、Processing.appを再起動します。シリアル通信など他のデバイスを利用するJavaアプリもこれと同様の操作をすることで使えるようになると思います。
*1:ヘッドセットやNXTとの接続