2017-08-29 23 views
1

我想使用Java掃描可用的COM端口。我以前用通訊庫,但它不工作在Java中掃描可用的COM端口

java.util.Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers(); 
int i = 0; 
String[] r = new String[10]; 
while (portEnum.hasMoreElements()){ 
    CommPortIdentifier portIdentifier = portEnum.nextElement(); 
    r[i] = portIdentifier.getName(); 
    i++; 
} 
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(r)); 

portEnum.hasMoreElements()回報每次false下面的代碼。

我沒有老式的RS232端口在我的電腦上我使用的USB到RS232轉換器,我用膩子測試。

我只是想掃描可用端口,所以我不介意使用其他庫。

答案: 我評論中使用波紋管的代碼和它的工作

import jssc.SerialPortList; 

public class Main { 

public static void main(String[] args) { 
    String[] portNames = SerialPortList.getPortNames(); 
    for(int i = 0; i < portNames.length; i++){ 
     System.out.println(portNames[i]); 
    } 
} 
} 
+0

你擁有了一切正確設置如下解釋: https://stackoverflow.com/questions/15955530/commportidentifier-getportidentifiers-is-empty – Sven

+0

是的我有正確的目錄中的所有文件。 – MrsIl

回答

1
您正在使用哪種Java版本

?有可能與JDK問題8.

你試過 https://code.google.com/archive/p/java-simple-serial-connector/

用法示例:

import jssc.SerialPortList; 

public class Main { 

    public static void main(String[] args) { 
     String[] portNames = SerialPortList.getPortNames(); 
     for(int i = 0; i < portNames.length; i++){ 
      System.out.println(portNames[i]); 
     } 
    } 
} 

更多的例子,請訪問https://code.google.com/archive/p/java-simple-serial-connector/wikis/jSSC_examples.wiki

+0

雖然這可能在理論上回答這個問題,但[這將是更可取的](// meta.stackoverflow.com/q/8259)在這裏包含答案的基本部分,並提供供參考的鏈接。 – GhostCat