转载请标明出处:http://blog.csdn.net/bayougeng/archive/2009/08/04/4405896.aspx
前段时间研究了一下在Windows操作系统下用java进行串口操作。很关键的一点就是环境配置。我发现网上的文章千篇一律。都需要将几个文件copy到JDK安装目录下的某个目录中。按照网上介绍的方法进行配置的话,也能将开发环境配置起来。但是,由于程序运行必须的jar和dll无法打包,而产生不能成功部署的问题。比如,我在某个论坛上就看到,有个网友用Applet从客户端读串口的数据,Applet在他自己的机器上运行没有问题(当然没有问题,jar什么的都copy到jdk目录中了,成为jdk的一部分了),但是从别的机器访问的时候,Applet就不能正常运行了。问题很明显,必须的jar和dll文件没有被load到客户端去。本文根据自己的切身体验,总结出一套环境配置的方法。希望对网友有所帮助。
一.需要的工具和文件
1.eclipse 版本:3.0以上即可。
2.rxtx-2.1-7-bins-r2 .zip 出处:http://users.frii.com/jarvi/rxtx/download.html。
3.JDK 版本:我用的是1.5版,但是我认为更低的版本也没有问题。
二.环境搭建的步骤
step1.在eclipse中新建一个工程(根据你自己的需要,Applet,tomcat,java工程等均可)。
step2.在工程下建一个lib文件夹。
step3.将rxtx-2.1-7-bins-r2 .zip解压缩,得到文件夹[rxtx-2.1-7-bins-r2]。
step4.将[rxtx-2.1-7-bins-r2]\RXTXcomm.jar这个文件copy到step2创建的lib中。
step5.将[rxtx-2.1-7-bins-r2]\Windows\i368-mingw32目录下的两个dll文件copy到step2创建的lib中。
step6.在工程上右键 -> Properties -> Java Builder Path -> Libraries -> Add JARs -> 选择step2中创建的lib目录下的RXTXcomm.jar -> OK。
step7.最关键的一步。点RXTXcomm.jar前面的小加号(+) -> 选择Native library location -> 点右边一列按钮中的Edit… -> 选择step2中创建的lib目录 -> OK。
补充:如果你的代码需要调用本地dll,你可以通过同样的方式设置Native library location。
三.环境配置完了以后,可以写一个程序来测试一下了。以下是我的test程序。
view plaincopy to clipboardprint?
import gnu.io.CommPortIdentifier;
import java.util.Enumeration;
public class CommTest {
static CommPortIdentifier portId;
static Enumeration portList;
static int bauds[] = { 9600, 19200, 57600, 115200 };
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println("Find CommPort: " + portId.getName());
}
}
}
}
import gnu.io.CommPortIdentifier;
import java.util.Enumeration;
public class CommTest {
static CommPortIdentifier portId;
static Enumeration portList;
static int bauds[] = { 9600, 19200, 57600, 115200 };
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println("Find CommPort: " + portId.getName());
}
}
}
}
正确的运行结果应该像下面这样:
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
Find CommPort: COM1
四.总结
用Java进行串口通讯程序的开发,总的说有三种途径。
1.用sun提供的开发包javacomm。但是sun已经停止了对这个包的维护了。它只能适用于较低版本的JDK。而且它的配置很麻烦。
2.用rxtx开发包。
3.用Delphi或者C++等更易于操作底层硬件的开发语言开发本地代码。借助JNI技术,用Java调用本地代码。根据我的理解,实际上rxtx开发包也是用的第三种途径。压缩文件中的两个dll文件就是最好的证据。
4.如果你的工程最终可能在其他操作系统上,你应该将[rxtx-2.1-7-bins-r2]文件夹下对应操作系统目录中的文件copy到你的工程lib目录中。比如,你要在linux下运行,那就应该把linux文件夹下的so文件copy到工程lib文件夹中。rxtx可以根据操作系统环境,选择需要加载的本地文件。这样就能真正做到跨系统,跨平台了。
转载请标明出处:http://blog.csdn.net/bayougeng/archive/2009/08/04/4405896.aspx
分享到:
相关推荐
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
[ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...
RXTX串口读写在windows下开发正常,在Linux下存在bug,表现为:在代码中能正常开启串口后,发数据、收数据时,jvm崩溃报错。资源加载失败等. 解决方案: 在Linux平台上编译,编译生成.so文件以及RXTXcomm.jar引用包. ...
第3章 创建嵌入式系统开发环境 3.1 嵌入式Linux的开发环境 3.2 Cygwin 3.3 虚拟机 3.4 交叉编译的预备知识 3.4.1 Make命令和Makefile文件 3.4.2 binutils工具包 3.4.3 gcc编译器 3.4.4 Glibc库 3.4.5 GDB ...
Java可视化集成开发环境的研究与实现.pdf Java调用VC_DLL实现串口GPS的访问.pdf LabVIEW_快速构建步进电机控制系统的利器.pdf LabVIEW下普通数据采集卡的驱动与调用.pdf LabVIEW下远程虚拟实验室的研究与实现....