<< ベートーベン ピアノソナタ 第30番 | Home | リモコン信号を見てみた。 >>
PR: 転職    お墓    エコ    通販    結婚相談所    シルバー    質屋    葬式    漫画    エステサロン   

Java Communications API

Java Communications APIが10年以上ぶりくらいに必要になったので探す。なんかRXTXというのを使えという記事が見つかるものの、飛び先がリンク切ればかりで、twitterでぼやいたところ、さくらばさんから場所を教えていただきました。もっともこのRXTXというのは、パッケージ名がgnu.orgになっていてJava Communications APIとは別物のよう。まぁUSBモデムデバイスが制御できれば良いので、これを使うことにする。

Linux amd64というマイナー環境なので、ソースからコンパイルすることにする。zipで置いてあるやつは、UTS_RELEASEという識別子が無いよ〜というエラーでコンパイルできないので、CVSから最新版を取る

で、これだと/dev/ttyACMnデバイスが見つからないのでソースを修正する。src/gnu/io/RXTXCommDriver.javaを開き、

if(osName.equals("Linux"))
{
    String[] Temp = {
      "ttyS", // linux Serial Ports
      "ttySA", // for the IPAQs
      "ttyUSB", // for USB frobs
      "ttyACM",// linux CDC ACM devices        <<= ここを追加。
      "rfcomm",       // bluetooth serial device
      "ttyircomm", // linux IrCommdevices (IrDA serial emu)
    };
    CandidatePortPrefixes=Temp;
}

あとは、定石通りconfigure/make/make installでok。あ、export JAVA_HOME=の指定が必要。

ここにあるデバイス列挙のサンプルを動かしてみると、列挙された。

shanai@desktop:/tmp$ java Test                                               
WARNING:  RXTX Version mismatch
        Jar version = RXTX-2.2
        native lib Version = RXTX-2.2pre2
/dev/ttyACM0 - Serial
/dev/ttyS0 - Serial



コメント追加 トラックバック送信
このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8