20

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

我使用通用 Java 程序来检查我的 PC 上的可用端口。该程序编译并运行没有错误。然而它什么也没返回。

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

4

7 回答 7

11

这就是我让它工作的方式。
我已经在我的 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。

现在运行您的程序,它应该可以工作。

于 2012-09-06T02:51:18.233 回答
5

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

在某一时刻,RXTX 库包括对使用 javax.comm api 的直接支持。我不确定它是否仍然存在,但是使用“本机”RXTX 包装的主要变化主要只是包名称的变化。

于 2010-10-18T15:23:01.173 回答
3

看来 win32com.dll 不适用于 64 位操作系统

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

但是,我发现这个页面有一个 64 位的 DLL 版本,等等。

编辑

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

于 2010-10-18T14:32:33.880 回答
2

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

最新版本,即http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,不再有这个问题。不幸的是,我认为它仅适用于 Windows,它仍然存在于 Linux 二进制文件中,而且我还没有在 mac 上尝试过。

于 2011-10-22T10:40:18.160 回答
1

您可能对我编写的替代库感兴趣:http ://code.google.com/p/jperipheral/

于 2011-10-05T22:59:07.903 回答
1

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

于 2010-10-18T14:45:16.303 回答
1

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

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

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

我安装了32 位 jdk并按照此处的指示为 32 位 Windows 设置了 comm-api 二进制文件...在 Windows 上设置 comm api

之后一切都很好

于 2011-07-27T09:47:04.653 回答