转载请标明出处: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
分享到:
相关推荐
总之,`rxtxSerial.dll`是Java串口开发在64位Windows系统中的关键组件,RXTX库提供了一套完整的API,使得Java程序员可以方便地实现串行通信功能。正确配置和使用这个库,可以帮助你构建能够与各种串行设备进行有效...
Java调用Windows串口是Java开发中的一种常见需求,特别是在嵌入式系统、物联网设备或者与硬件交互的应用中。在Java中,虽然标准库没有直接提供串口通信的支持,但可以通过JNI(Java Native Interface)或者第三方库来...
总之,Java串口模拟调试利用VSPD和相应的Java串口库,可以在没有物理串口的环境下进行串行通信的测试和调试,这对于开发和维护依赖串口通信的系统至关重要。通过熟悉这些工具和技术,开发者能够更加高效地解决与串口...
在Linux环境下进行Java的串口(Serial Port)和并口(Parallel Port)开发时,开发者通常会使用开源库RXTXcomm.jar。这个库为Java应用程序提供了与串口和并口通信的能力,使得Java程序员无需依赖操作系统特定的API就...
`javacomm20-win32.rar`这个压缩包包含了一个适用于Windows系统的Java串口通信组件,它允许Java应用程序通过串行端口与外部设备进行数据交换。`javacomm20`是这个库的版本号,暗示这是一个较早的实现,可能针对JDK ...
Java串口操作是Java编程中一个相对特殊但实用的领域,尤其在嵌入式系统、物联网设备通信或者工业自动化等领域中。本示例是通过RXTX库在...理解并掌握Java串口操作以及RXTX的使用,对于进行这类开发工作至关重要。
Java串口编程API包是Java平台上进行串行通信的关键工具,它允许开发者通过Java程序控制串行端口,实现与外部设备的交互。这个API包包括了几个关键组件,如`comm2.0.jar`、`win32com.dll`以及`javax.comm.properties`...
Java串口开发是一种在Java环境下实现设备间串行通信的技术,广泛应用于嵌入式系统、自动化设备、数据采集等领域。本文将深入探讨Java串口开发的相关知识点,包括环境配置、开发过程以及实例应用。 首先,Java环境...
Java串口通信是一种在计算机之间或计算机与其他设备(如PLC、Arduino等)进行低级数据传输的方法。在Java中实现串口通信通常需要依赖外部库,如本示例中的"RXTXcomm.jar"。这个jar包包含了32位和64位版本,适用于...
Java串口编程是Java开发中一个相对特殊但重要的领域,特别是在设备交互、嵌入式系统或物联网(IoT)应用中。"JAVA 串口编程JDK" 提供了一个Java运行环境包,使得开发者能够利用Java语言进行串口通信,这对于那些希望在...
Java串口操作是Java编程中一个相对特殊但重要的领域,主要涉及到硬件通信和设备交互。在实际应用中,比如工业自动化、物联网设备控制等场景,Java串口编程扮演着关键角色。标题提到的问题是关于数据传输时遇到的一个...
Java串口通信是一种在计算机之间通过串行接口进行数据传输的技术。在Java中,我们可以使用javax.comm库或者RXTX库来实现串口通信。这个实例是关于如何使用GUI(图形用户界面)来构建一个Java应用程序,使得用户可以...
Java串口编程是Java开发中一个重要的领域,尤其在物联网(IoT)、嵌入式系统和设备通信中,它扮演着关键角色。本资源包包含的8个文件旨在帮助开发者全面理解并掌握这一技术。以下是对每个知识点的详细解释: 1. **...
本资源“java串口通信全套完整代码-导入eclipse直接用”提供了一套完整的Java串口通信实现,无需额外配置,可直接在Eclipse集成开发环境中使用。 Java串口通信主要依赖于`javax.comm`库,但这个库在Java 6之后就...
RXTXcomm、rxtxParallel和rxtxSerial是与Java串口通信相关的标签,它们分别代表了RXTX库的主要部分,包括串口通信的核心接口、并行通信支持以及与串行设备交互的具体实现。 RXTX是一个开源的Java库,它为Java提供了...
在使用这个win64位的Java串口插件时,首先需要确保你的开发环境是64位的Java Development Kit (JDK)。然后,解压下载的zip文件,将其中的库文件(通常为jar包)添加到项目的类路径中。这样,你就可以通过导入相关的...
Java串口开发包RXTX是一个开源项目,它为Java编程语言提供了串行通信功能,使得开发者能够在Java应用程序中方便地访问串行端口。RXTX库是跨平台的,支持Windows、Linux、Mac OS X以及其他Java兼容的操作系统。在Java...
"java_windows_32位与64位串口驱动"这个压缩包提供了适用于不同系统环境的驱动,确保无论是在32位还是64位的Windows操作系统上,Java程序都能正确地与串行端口进行交互。由于压缩包不包含Java Development Kit (JDK)...