64位Windows上的Javax.comm API

我正在使用javax.comm API来帮助我的程序通过串口与硬件进行通信。 我正在使用Windows 7和NetBeans IDE 9。

我使用常见的Java程序来检查我的PC上的可用端口。 程序编译并运行没有错误。 然而,它什么都没有。

如何在Windows上使用javax.comm API? 似乎win32com.dll不适用于64位操作系统。

这就是我开始工作的方式。
我在Windows 7 64位机器上使用JDK 1.6(32位)进行了测试。

  1. 安装32位JDK。
  2. 将’win32com.dll’复制到JDK_HOME \ jre \ bin。
  3. 将’javax.comm.properties’复制到JDK_HOME \ jre \ lib。
  4. 将’comm.jar’复制到JDK_HOME \ jre \ lib \ ext。

现在运行你的程序,它应该工作。

最近2.2版本的RXTX包括64位窗口的二进制文件。 我认为最新的RXTX信息源已改为: http : //rxtx.qbang.org而不是http://www.rxtx.org 。

有一次,RXTX库包含了对使用javax.comm api的支持。 我不确定它是否仍然存在,但是使用“原生”RXTX包装的主要变化主要是包名更改。

似乎win32com.dll不能与64位操作系统一起使用

我认为这是正确的。 实际上,根据相关下载页面,Oracle不再支持 任何 Windows平台的javax.comm API。

但是,我发现这个页面有64位构建的DLL,等等。

编辑

通过一项令人震惊的研究(即链接和阅读内容),我找到了最新RXTX的下载页面 ,该页面声称拥有各种平台的二进制文件。 如果您的平台不在那里,请尝试从源代码构建。 如果这不起作用,请考虑投入精力使其发挥作用。

我已经将RXTX库集成到我之前的一些项目中,并且在使用windows下的comm端口时发现了它的错误,所以在进入一些严肃的应用程序设计之前,你可能想先检查一下。 通信工作正常,从来没有任何问题,但一旦你打开端口你不能关闭它并重新打开,如果你使用提供关闭端口的方法,你的应用程序只是挂起,没有例外没有任何东西。 后来我发现用户在网络上描述了相同的行为,但从未真正找到解决此问题的方法。 同样,这可能会帮助您节省一些时间,先检查一下。

最新版本,即http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip ,不再有此问题。 不幸的是我觉得它只针对Windows解决了,它仍然存在于Linux二进制文件中,而我还没有在Mac上尝试过。

你看过RXTX了吗? 我认为它仍然活跃。

我有这个问题…在64位机器上…运行Windows 7

在jdk 1.4中开发的遗留应用程序,用于32位窗口……并使用win32 comm api二进制文件

我尝试了64位的RXTX二进制文件,我能够在某种程度上与我的设备进行通信……但是…还有其他问题,因为我的应用程序引用了内部使用comm-api的jpos库的一个版本(导入javax.comm。* …在某些Serial … Listener类中)….

我按照这里的指示安装了一个32位的jdk并设置了32位窗口的comm-api二进制文件… 在windows上设置comm api

之后一切都很好

您可能对我撰写的另一个图书馆感兴趣: http : //code.google.com/p/jperipheral/