簡體   English   中英

運行Debian 6的設備上的javax.comm.CommPortIdentifier.getPortIdentifiers()為空

[英]javax.comm.CommPortIdentifier.getPortIdentifiers() empty on device running Debian 6

恐怕這可能不是嚴格意義上的編程問題,而是我需要清除的更多內容才能繼續進行編程。

我只是試圖編寫一個程序進行串行通信,特別是使用javax.comm API,並且我在Win7上獲得了成功,但是當我在設備上運行任何此類程序時,都沒有輸出。 該設備正在運行Debian 6,並且已安裝JDK1.8.0。

為了在Win7上運行程序,我需要獲取API並將三個魔術文件comm.jarwin32comm.dlljavax.comm.properties放在特定的文件夾中,但是我不知道如何在我的文件夾中執行此操作設備。

有誰知道我是否可以將這三個文件放在任意文件夾中並使用路徑環境變量引用它們?

我試圖運行的代碼很簡單:

package test;
import java.util.Enumeration;
import javax.comm.*;

public class Test { 
    public static void main(String[] args) {
        Enumeration e = CommPortIdentifier.getPortIdentifiers();

        while (e.hasMoreElements()) {
            CommPortIdentifier com = (CommPortIdentifier) e.nextElement();
            System.out.println(com.getName());          
        }
}

根據http://reprap.org/wiki/JavaComm#Installation_on_Linux,您需要一些文件:

commapi/jar/comm.jar
commapi/lib/libLinuxSerialParallel.so
commapi/lib/libLinuxSerialParallel_g.so
commapi/docs/javax.comm.properties

“將jar文件放在類路徑中的某個位置(例如usr / java / j2sdk / jre / lib / ext之類的位置)中,.so文件放在Java的負載庫路徑中(在我的系統中位於/ usr / java / j2sdk / jre / lib / i386)和javax.comm.properties“ java可以找到它的地方”-在我的系統上,這似乎意味着從運行項目的目錄創建指向它的符號鏈接,但是在那里必須是更簡單的方法。”

如果二進制文件在您的系統上不起作用,則可能需要查找用於構建庫的源,然后自己進行編譯。

有關如何自己執行此操作的線索:

http://www.phidgets.com/phorum/viewtopic.php?f=39&t=3750

https://github.com/rxtx/rxtx.git

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM