java Eclipse 环境下配置 rxtx 包的过程及测试
网上流行两种方法:
一种是利用 sun 公司提供的 comm 包,里面有各种串口通讯的工具类和一些 dll
文件
另一种是利用 rxtx 包,这个包涵盖了 comm 包的工具类,而且能够支持的串口型
号更多,所以我使用第二种方法
首先当然要下载你的 rxtx 包,文件包已经附在这里:
RXTX-2.1-7r4 Eclipse Downloads
README-I20071016-1645.html.txt
- README about license, version and included bug fixes
RXTX-runtime-I20071016-1945.zip
- (500K)
- RXTX-2.1r7-4 Eclipse plugins and fragments for Windows,
Linux, Solaris and Mac (downloadable)
RXTX-SDK-I20071016-1945.zip
- (620K)
-
RXTX-2.1r7-4 runtime plus source plugin for debugging
(recommended download for most users)
RXTX-src-2.1.7.4-200710161945.zip
- (940K)
- Source Eclipse Projects for creating these downloads and
update site
RXTX-Updatesite-I20071016-1945.zip
- (600K)
- RXTX-2.1r7-4 archived update site as single download
RXTX-Updatesite-I20071016-1945.packed.zip
- (1.1M)
- RXTX-2.1r7-4 archived update site as single download
Rxtx 的开源包官网下载地址
http://rxtx.qbang.org/wiki/index.php/Download
注意别下错了,上面的 2.1 依旧是不支持 64 位系统的
rxtx-2.1-7-bins-r2.zip
rxtx-2.1-7r2.zip
mfz-rxtx-2.2-20081207-win-x64.zip
mfz-rxtx-2.2-20081207-win-x86.zip
rxtx-2.2pre2.zip
step1.在 eclipse 中新建一个工程(根据你自己的需要,Applet,tomcat,java
工程等均可)。建立一个属于你的 project。
step2.把 RXTXcomm.jar 和 rxtxParallel.dll 和 rxtxSerial.dll 加入你的项目 lib
文件夹里面,(最初就是这里困惑了我一下,项目的磁盘路径里面根本没有 lib 文件
夹= =),那我们就建立一个 lib 文件夹
右 击 你 的 项 目 --->new--->Folder---> 在 Folder name 一 栏 填 写 lib, 然 后
Finish,其余不管
[rxtx-2.1-7-bins-r2]/RXTXcomm.jar
[rxtx-2.1-7-bins-r2]/Windows/i368-mingw32 目录下的两个 dll 文件
新建了文件夹之后,复制上述的 3 个文件,然后右击这个 lib 文件夹,点击 paste~
然后你会发现 lib 文件夹中多了 3 个文件了~
Step3. 右 击 你 的 项 目 --> 选 中 propertities-->java Build
Path-->Libraries--->Add JARs...--->展开你的 project 名称--->展开你的 lib
文件夹---->选中 RXTXcomm.jar 包--->点击 OK
Step4.最关键的一步。点 RXTXcomm.jar 前面的小加号(+) -> 选择 Nativ
e library location (none) -> 点右边一列按钮中的 Edit… --->选中 Extern
al Folder(点击 workspace,查找更方便)--->接着找到你的项目所在的路径,
再选中那个 lib 文件夹就可以了~ -> OK。
补充:如果你的代码需要调用本地 dll,你可以通过同样的方式设置 Native libr
ary location。
环境配置完了以后,可以写一个程序来测试一下了。以下是我的 test 程序。
在你的项目需要用到这些类的.class 文件中添加 import gnu.io.*;
然后就开始你的开发吧~~!!至于怎么用这些类我也还没摸透= =等我学会了再
与各位分享~~
三.环境配置完了以后,可以写一个程序来测试一下了。以下是我的 test 程序。
1. import gnu.io.CommPortIdentifier;
2. import java.util.Enumeration;
3. public class CommTest {
4.
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());
}
}
}
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16. }
测试程序.txt
正确的运行结果应该像下面这样:
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++等更易于操作底层硬件的开发语言开发本地代码。借助 J
NI 技术,用 Java 调用本地代码。根据我的理解,实际上 rxtx 开发包也是用的
第三种途径。压缩文件中的两个 dll 文件就是最好的证据。
4.如果你的工程最终可能在其他操作系统上,你应该将[rxtx-2.1-7-bins-r2]文件
夹下对应操作系统目录中的文件 copy 到你的工程 lib 目录中。比如,你要在 li
nux 下运行,那就应该把 linux 文件夹下的 so 文件 copy 到工程 lib 文件夹中。
rxtx 可以根据操作系统环境,选择需要加载的本地文件。这样就能真正做到跨系
统,跨平台了。
com-232.zip 这个是我自己的工程文件,已经测试成功
测试成功截图