海の響きを懐かしむ

観たもの聴いたもの読んだものの記録と、日記など

64bit版Javaの上でRXTXを利用する

【reference】

  1. http://rxtx.qbang.org/wiki/index.php/Main_Page
  2. http://code.google.com/p/arduino/issues/detail?id=172
  3. http://trick77.com/2010/09/05/how-to-connect-holux-m-241-64-bit-snow-leopard-usb/

ProcessingではなくJavaで直接Arduinoと直接通信する場合にはRXTXライブラリ[1]を用いる。しかし既存のライブラリを64bit版のJavaで使おうとすると、

  • gnu.io.PortInUseException: Unknown Application

というエラーが出て通信できない。以下に対処法を示す。

まず[2]から64bitがサポートされたライブラリ(librxtxSerial.jnilib)をダウンロードし適切な場所に置き、パスを通す。OS Xならば/Libraru/Java/Extentions。

さらに[3]にならい、RXTXのためのセマフォのディレクトリを作り、パーミッションを変更しなければならない。

  • sudo mkdir /var/lock && sudo chmod 777 /var/lock

これを見つけるのにえらい苦労した・・・無事、シリアルでread/writeができるようになった。

Snow Leopardでは64bit版Javaがデフォルトになっており、Java Preference.appで32bit版に入れ替えればすんだような気がするが、このほうが根本的な解決だと思う。