我把javacomm20-win32内的三个文件: comm.jar javax.comm.properties win32com.dll
都复制到了以下文件夹内:
C:\j2sdk1.4.2_13\bin
C:\j2sdk1.4.2_13\lib
C:\j2sdk1.4.2_13\jre\bin
C:\j2sdk1.4.2_13\jre\lib在编译时: 还是找不到这个包(当然我在程序里是加入了: import javax.comm.*;)
F:\TTDD\java_SerialPort\javacomm20-win32>javac *.java
SerialBean.java:3: package javax.comm does not exist
import javax.comm.*;
^
请高手指点!
都复制到了以下文件夹内:
C:\j2sdk1.4.2_13\bin
C:\j2sdk1.4.2_13\lib
C:\j2sdk1.4.2_13\jre\bin
C:\j2sdk1.4.2_13\jre\lib在编译时: 还是找不到这个包(当然我在程序里是加入了: import javax.comm.*;)
F:\TTDD\java_SerialPort\javacomm20-win32>javac *.java
SerialBean.java:3: package javax.comm does not exist
import javax.comm.*;
^
请高手指点!
comm.jar
javax.comm.properties
win32com.dll 把javax.comm.properties和.dll文件复制到JDK下面的jre/lib/ext.中,
comm.jar复制到你建的工程下的LIB的classpath目录下。
import java.util.*;
import javax.comm.*;public class PortTest
{
static CommPortIdentifier portId;
static Enumeration portList;
public static void main(String[] args)
{
portList = CommPortIdentifier.getPortIdentifiers();//获取系统的串口
System.out.println( "aa");
while(portList.hasMoreElements()){
portId = (CommPortIdentifier)portList.nextElement();
if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
System.out.println(portId.getName()+ "aa");
}
}
}
}
到SUN的网站下载javacomm20-win32.zip,包含的东西如下所示:
按照其使用说明(Readme.html)的说法,要想使用串口包进行串口通信,除了设置好环境变量之外,还要将win32com.dll复制到\bin目录下;将comm.jar复制到\lib;把javax.comm.properties也同样拷贝到\lib 目录下。然而在真正运行使用串口包的时候,仅作这些是不够的。因为通常当运行“java MyApp”的时候,是由JRE下的虚拟机启动MyApp的。而我们只复制上述文件到JDK相应目录下,所以应用程序将会提示找不到串口。解决这个问题的方法很简单,我们只须将上面提到的文件放到JRE相应的目录下就可以了。
值得注意的是,在网络应用程序中使用串口API的时候,还会遇到其他更复杂问题。有兴趣的话,你可以查看CSDN社区中“关于网页上Applet用javacomm20读取客户端串口的问题”的帖子。