我正在使用javax.comm API来帮助我的程序通过串口与硬件进行通信。我使用的是Windows 7和NetBeans IDE 9.
我使用常见的Java程序来检查我的PC上的可用端口。该程序编译并运行没有错误。然而,它什么都没有。
如何在Windows上使用javax.comm API?似乎win32com.dll不适用于64位操作系统。
答案 0 :(得分:9)
这就是我开始工作的方式 我在Windows 7 64位机器上使用JDK 1.6(32位)进行了测试。
现在运行你的程序,它应该可以工作。
答案 1 :(得分:5)
最近2.2版本的RXTX包含64位窗口的二进制文件。我认为最新的RXTX信息来源已改为:http://rxtx.qbang.org而不是http://www.rxtx.org。
RXTX库一度包含了对使用javax.comm api的支持。我不确定它是否仍然存在,但是使用“原生”RXTX包装的主要变化主要是更改包名称。
答案 2 :(得分:3)
似乎win32com.dll无法与64位操作系统一起使用
我认为这是正确的。实际上,根据相关下载页面,Oracle不再支持任何 Windows平台的javax.comm
API。
但是,我发现this page有一个64位版本的DLL,等等。
修改强>
通过一项令人震惊的研究(即链接和阅读内容),我找到了最新的RXTX的download page,它声称拥有各种平台的二进制文件。如果您的平台不在那里,请尝试从源代码构建。如果这不起作用,请考虑投入精力使其发挥作用。
答案 3 :(得分:2)
我已将RXTX库集成到我之前的一些项目中,并且我在使用Windows下的comm端口时发现了它的错误,所以在进入一些严肃的应用程序设计之前,您可能想先检查一下。 通信工作正常,从来没有任何问题,但一旦你打开端口,你无法关闭它并重新打开,如果你使用提供关闭端口的方法,你的应用程序只是挂起,没有例外没有任何东西。我后来发现用户在网络上描述了相同的行为,但从未真正找到解决此问题的方法。 同样,这可能会帮助您节省一些时间,先检查一下。
最新版本,即此http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip,不再有此问题。不幸的是,我认为它只针对Windows解决,它仍然存在于Linux二进制文件中,而我还没有在Mac上试过它。
答案 4 :(得分:1)
你看过RXTX了吗?我认为它仍然活跃。
答案 5 :(得分:1)
我有这个问题......在64位机器上......运行Windows 7
在jdk 1.4中开发的遗留应用程序,用于32位窗口......并使用win32 comm api二进制文件
我尝试了64位的RXTX二进制文件,我能够在某种程度上与我的设备进行通信......但是...还有其他问题,因为我的应用程序引用了内部使用comm的jpos库的一个版本-api(导入javax.comm。* ...在某些Serial ... Listener类中)....
我安装了 32位jdk 并按照此处的指示设置了32位窗口的comm-api二进制文件... setup comm api on windows
之后一切都很好
答案 6 :(得分:1)
您可能对我撰写的替代图书馆感兴趣:http://code.google.com/p/jperipheral/