求教: java串口通信
在用java进行串口通信操作时遇到下面问题
Error loading SolarisSerial:
java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.
UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I while loading driver com.sun.comm.SolarisDriver
Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialParallel in java.library.path
Caught java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySerial(Ljava/util/Vector;Ljava/lang/String;)I while loading driver com.sun.comm.SolarisDriver
怎么解决?这三个文件怎么配置(win32com.dll comm.jar javax.comm.properties)
我java的安装路径D:\Program Files\Java Java下有两个文件夹
我的环境变量
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%tomcat_home%\lib\servlet-api.jar;%JAVA_HOME%\jre\lib\ext\comm.jar
JAVA_HOME=D:\Program Files\Java\jdk1.6.0_10
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
------解决方案--------------------读串口的例程
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleRead implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;//枚举类
InputStream inputStream;
SerialPort serialPort;
Thread readThread;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();/*不带参数的getPortIdentifiers方法获得一个枚举对象,该对象又包含了系统中管理每个端口的CommPortIdentifier对象。注意这里的端口不仅仅是指串口,也包括并口。这个方法还可以带参数。getPortIdentifiers(CommPort)获得与已经被应用程序打开的端口相对应的CommPortIdentifier对象。getPortIdentifier(String portName)获取指定端口名(比如“COM1”)的CommPortIdentifier对象。*/
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)/*getPortType方法返回端口类型*/ {
// if (portId.getName().equals("COM1"))/* 找Windows下的第一个串口*/ {
if (portId.getName().equals("/dev/term/a"))/*找Unix-like系统下的第一个串口*/ {
SimpleRead reader = new SimpleRead();
}
}
}
}
public SimpleRead() {
try {