JavaでRS-232Cを使うため
http://www.rxtx.org/
の
RXTXcomm.jar goes in \jre\lib\ext (under java)
rxtxSerial.dll goes in \jre\bin
を入れて
http://www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.html
で紹介されている
SerailPortHandler.java
DumbTerminal.java
をダウンロードして、それぞれ「javax.comm」を「gnu.io」に変え
自分のPCでは動くようになったのですが、これを他のPCで動かすにはどうしたらいいでしょうか。
JREはインストール済みのPCでJavaコマンドは実行可能ですが、
java DumbTerminal COM06 を実行すると
Exception in thread "main" java.lang.NoClassDefFoundError: gnu/io/SerialPortEven
tListener
となります。
他の PC で、
の
RXTXcomm.jar goes in \jre\lib\ext (under java)
rxtxSerial.dll goes in \jre\bin
を入れて
をやって無い、に一票。
RXTXcomm.jar と rxtxSerial.dll をDumbTerminal.class とSerailPortHandler.classと同梱して、jarでアーカイブすればいいですか?
classファイルと同じフォルダにあればdllも参照可能ですか?
【追記】
RXTXcomm.jarを解凍して、「Main-Class: DumbTerminal」と書いたファイル(MANIFEST.MF)を作成して、
jar cvfm jterm.jar MANIFEST.MF DumbTerminal.class SerialPortHandler.class gnu
を実行して
jterm.jar と同じフォルダにrxtxSerial.dllを置き
java -jar jterm COM6
で動きました。ありがとうございます。
dllをjarに入れることはできませんか?
dllをjarに入れることはできませんか?
マニフェストファイルに、Bundle-NativeCode を書くとできるみたい。
Manifest-Version: 1.0 Bundle-NativeCode: rxtxSerial.dll Main-Class: DumbTerminal
ありがとうございます。
さっそく試してみましたが、うまく行きませんでした。
何か設定が足りていないのかも知れません。
java -jar jterm.jar COM6
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while
loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java
それはそうなんですが、javaでは動的リンクのライブラリを一緒にして配布する手段が無いんですか?
ライブラリファイル渡して、ライブラリのフォルダに使う人がコピーするんですか?