人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javaで標準以外のライブラリを使用したプログラムを他のPCで動かす方法を教えてください。

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
となります。

●質問者: garyo
●カテゴリ:コンピュータ
✍キーワード:DLL GNU JAR Java JRE
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● a-kuma3
●27ポイント

他の PC で、

http://www.rxtx.org/

RXTXcomm.jar goes in \jre\lib\ext (under java)

rxtxSerial.dll goes in \jre\bin

を入れて

をやって無い、に一票。

◎質問者からの返答

それはそうなんですが、javaでは動的リンクのライブラリを一緒にして配布する手段が無いんですか?

ライブラリファイル渡して、ライブラリのフォルダに使う人がコピーするんですか?


2 ● あすか
●27ポイント

jarでアーカイブして配布してはいかがでしょう。

◎質問者からの返答

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に入れることはできませんか?


3 ● a-kuma3
●26ポイント

dllをjarに入れることはできませんか?

マニフェストファイルに、Bundle-NativeCode を書くとできるみたい。

Manifest-Version: 1.0
Bundle-NativeCode: rxtxSerial.dll
Main-Class: DumbTerminal

http://forums.sun.com/thread.jspa?threadID=145895&tstart=59

◎質問者からの返答

ありがとうございます。

さっそく試してみましたが、うまく行きませんでした。

何か設定が足りていないのかも知れません。


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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ