MacでlibusbJava - libusb 0.1と1.0
前回、MacでlibusbJavaを使うことを書いた。
■ MacでlibusbJavaを使う | Ken's evitation http://blog.teapla.net/?p=1153
JNIは解決し、実行は出来たものの、実行するとなぜかUSB Busを見つけてくれない。libusbJavaからUSB Busを見つけられるようにしてあげる必要がありそうだ。
libusbが怪しい
JNIでlibusbは呼び出せているということは、libusbが怪しそうだ。 実際、libusbは1.0と0.1の2つが存在する。■ libusb http://www.libusb.org/
libusbJavaは1.0をサポートしていないということで、Macにはlibusb 0.1を入れていた。それでうまく動かないということは、1.0を使った方がいいということなのかもしれない。 ただ、libusbJavaがサポートしていないと言っている以上、そのままでは使えない。そこで、usblib-compatというライブラリに注目した。 compat(ible)というだけあって、0.1も1.0もうまくやってくれるだろうという期待を込めて!
sudo port uninstall libusb-legacy sudo port install libusb sudo port install libusb-compat
余計かもしれないlibusb 1.0(legacy)を削除し、必要そうなlibusb 1.0をインストール。
JNILIBからの参照先
このままではJNILIBから参照するライブラリが無いと言われるので、シンボリックリンクを張る。cd /usr/local/lib sudo ln -s /opt/local/lib/libusb.dylib ./libusbpp-0.1.4.dylib sudo ln -s /opt/local/lib/libusbpp.dylib ./libusb-0.1.4.dyliblibusb 1.0にはlibusbppというライブラリが存在しないので、libusbとlibusbppを同じファイルにシンボリックリンク。 なんとなく、libusbppがlibusbに取り込まれたんじゃないかなぁ〜という推測を元に。
結果
USB Busを認識するようになった!JNILIB作成時にlibusbppが無いと言われていたが、もしかしたら、これでJNILIBも作れるようになったのかもしれない。と思って試してみたが、JNILIBの作成は失敗した。 また必要になったときにでも改めてやってみよう。