2014-02-14 69 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位 –