2012-10-11 42 views
1

我有一個在Eclipse中運行的應用程序。它使用RxTx代碼訪問串行端口。應用程序使用CommPortIdentifier來設置它添加到JComboBox的端口列表。這在Eclipse中可以正常工作。Java應用程序在Eclipse中運行,但Jar無法找到串行端口

public void initArguments() { 
    String[] args = new String[3]; 
    args[0] = "prot2prom.csv"; 
    args[1] = "COM4"; 
    args[2] = "Bank0"; 
    Scanner scan = null; 
    Enumeration   portList; 
    CommPortIdentifier portId; 
    String    portName; 
    String    target; 


     // Select The Serial Port 
    target = args[1]; 
    portList = CommPortIdentifier.getPortIdentifiers(); 
    while (portList.hasMoreElements()) { 
     portId = (CommPortIdentifier) portList.nextElement(); 
     portName = portId.getName(); 
     portStrings.addItem(portName); 
     if(portName.equals(target)){ 
      portStrings.setSelectedIndex(portStrings.getItemCount() - 1); 
     } 
    } 
} 

當我運行從JAR文件的應用程序,它運行沒有錯誤,但是當它使用串行端口和JComboBox可空攤位(除了我沒有選擇)。你如何調試Jar? RxTx庫是否包含在內?

+1

我很想有一個答案接受! – mkstlwtz

+0

當你運行你的jar文件時,rxtx.jar是否在classpath上?除非用空的catch塊壓制這些異常,否則應該會看到某種異常。 –

+0

解決問題。在將rxtxSerial.dll放入JDK的bin目錄後,我認爲我完成了Eclipse的工作。在我將相同的文件放入JRE的bin目錄之前,Jar不工作。 – mkstlwtz

回答

0

問題已解決 - 我認爲在Eclipse將rxtxSerial.dll放入JDK的bin目錄後工作完成了。在我將相同的文件放入JRE的bin目錄之前,Jar不工作。

+0

修改JDK是一種糟糕的風格,您必須一次又一次地爲每個JDK更新進行修改。 – Robert

1

如果您在命令行控制檯內使用命令java -jar <myjarfile.jar>執行JAR文件,您將看到如Eclipse中所示的控制檯輸出。

如果加載RXTX時出現任何問題,您應該看到錯誤消息,指出缺失或缺陷。

相關問題