2010-05-20 28 views
1

我有一個Java程序在運行時連接到COM端口。我只有一個.JAR文件。我最近試圖從程序運行的機器移動到另一臺機器上。我知道串口設備可以在新機器上運行,因爲我可以通過一個名爲Putty的程序與它們進行交互。當我執行.JAR文件時,它似乎運行得很好,但無法連接到com端口。這可能是安裝在另一臺機器的JRE中的缺少的庫嗎?我如何弄清楚什麼是缺少的程序運行?將Java JAR文件移動到新機器

回答

3

是的,這很可能是問題所在。 Java中的傳統端口(並行和串行端口)支持由Java Communications API提供,它依賴本機代碼來支持對這些端口的低級訪問。該API是JDK的擴展,而不是其中的一部分。

當然,也可能是在新機器上運行程序的用戶沒有訪問端口的權限,這是一個不同的問題。

編輯:對於傳統端口的跨平臺支持,即使你只打算在一個平臺上使用你的程序,我推薦​​,一個JavaComm的開源替代品。

1

打開jar文件,查看META-INF/MANIFEST.MF文件,看它是否指定了任何jar依賴項。 如果不是,則JAR可能使用某些本地庫連接到COM端口。

0

對Java使用串行端口通常涉及將已編譯的本地(.so或.dll)文件添加到LD_LIBRARY_PATH中。

我覺得你使用Linux,所以找了一個原來的機器上稱爲librxtxSerial.so文件(它會在Windows上被稱爲rxtxSerial.dll)

庫路徑的設置很少的方法,但你最好的選擇是在原始的Java安裝中檢查這個文件:

eg /jre/lib/i386/librxtxSerial.so

另一件需要注意的是rxtx jar本身(這可能已經捆綁在你的jar中,或者可能不是)。

只需按照RXTX網站上的說明操作,您可能會獲得更好的結果,但我會嘗試先理解原始安裝。

http://rxtx.qbang.org/wiki/index.php/Installation

祝你好運!

相關問題