2014-02-14 42 views
0

我必須發送數據到串行端口,javax.comm也包含在內,但它會給出錯誤 「Caught java.lang.UnsatisfiedLinkError:no java.rm.Series in java.library.path while加載驅動程序gnu.io.RXTXCommDriver 加載SolarisSerial時出錯:java.lang.UnsatisfiedLinkError:java.library.path中沒有SolarisSerialParallel Caught java.lang.UnsatisfiedLinkError:com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;我加載驅動com.sun.comm.SolarisDriver「使用java加載串行端口共享庫時出錯

我在訪問所有串行端口數據讀寫相關的問題,但找不到任何解決方案

你好心幫我

的代碼如下:

package serial; 
import java.io.*; 
import java.util.*; 
import javax.comm.SerialPort; 
import javax.comm.CommPortIdentifier; 
import javax.comm.UnsupportedCommOperationException; 
import javax.comm.PortInUseException; 

public class SimpleWrite { 
static Enumeration portList; 
static CommPortIdentifier portId; 
static String messageString = "Hello, world!\n"; 
static SerialPort serialPort; 
static OutputStream outputStream; 

public static void main(String[] args) { 
    portList = CommPortIdentifier.getPortIdentifiers(); 

    while (portList.hasMoreElements()) { 
     portId = (CommPortIdentifier) portList.nextElement(); 
     if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { 
      if (portId.getName().equals("COM6")) { 
      //if (portId.getName().equals("/dev/term/a")) { 
       try { 
        serialPort = (SerialPort) 
         portId.open("SimpleWriteApp", 2000); 
       } catch (PortInUseException e) {} 
       try { 
        outputStream = serialPort.getOutputStream(); 
       } catch (IOException e) {} 
       try { 
        serialPort.setSerialPortParams(9600, 
         SerialPort.DATABITS_8, 
         SerialPort.STOPBITS_1, 
         SerialPort.PARITY_NONE); 
       } catch (UnsupportedCommOperationException e) {} 
       try { 
        outputStream.write(messageString.getBytes()); 
       } catch (IOException e) {} 
      } 
     } 
    } 
} 

}

+0

您是否設置了庫路徑的位置? – Reimeus

+0

我將javax.comm的新庫放在C:\ java_comm \ lib中,netbeans安裝在C:\ Program Files(x86)\ NetBeans 7.0.1中,但我在項目屬性中添加了庫 –

回答

1

確保串行庫的庫路徑已經設置。試試這個

java -Djava.library.path=C:\java_comm\lib SimpleWrite 

你似乎是運行的NetBeans和32位版本(通過擴展名)的Java。因此,請確保您有相應的32位版本的rxtxserial,可以找到here

+0

現在將項目文件夾放入C:\ java_comm \ lib文件夾,但錯誤是一樣的,好心的幫助,我知道你很忙,但你給男人一刻我非常感謝 –

+0

你使用的是32位'rxtxSerial.dll'(看起來像你使用的是32位NetBeans + JDK)? – Reimeus

+0

先生你給我的郵件地址,我發給你的文件,你檢查它是否是32位或不是我下載它並添加到圖書館,沒有任何信息提到這個圖書館關於32位或64位 –