6

我正在构建一个简单的应用程序,它使用 Java 通信 API javax.comm 通过串行端口进行通信。

这是我编写的 java main 方法中的一些代码:

CommPortIdentifier cpi = null;
        Enumeration e = CommPortIdentifier.getPortIdentifiers();
        while (e.hasMoreElements()) {
            try {
                cpi = (CommPortIdentifier) e.nextElement();
            } catch (NoSuchElementException n) {

            }
            System.out.println(cpi.getName());
        }

枚举 e 始终为空,即使我在运行时连接到 COM 4 端口。

此外,运行此代码:

portRead = CommPortIdentifier.getPortIdentifier("COM8");

导致抛出NoSuchPortException

我想我已经正确完成了安装部分并将属性文件 win32com.dll 文件放在了正确的位置。

你知道问题可能是什么吗?

谢谢你

4

4 回答 4

7

请始终记住,您需要将 javax.comm.zip 中的所有解压缩文件添加到jre

win32com.dll - jre/bin

comm.jar - jre/lib/ext

java.comm.properties - jre/lib(添加后我发现已解决的异常问题)

于 2014-02-14T21:36:54.140 回答
3

确保 win32com.dll(与 javax.com 一起提供)位于 jre\bin 目录中。确保 javax.comm.properties(与 javax.com 一起提供)位于 jdk\lib 目录中。

于 2013-06-20T20:27:47.213 回答
1

这对我有用(我安装了 x86 jdk )并按照步骤操作

您的问题是 Windows 无法将正确的端口传送到您的 JAVA 程序。

您必须按照此链接将正确的文件复制到正确的位置。

http://kishor15389.blogspot.com/2011/05/how-to-install-java-communications.html

于 2016-06-01T10:03:38.857 回答
-1

查找您的设备正在工作的端口(尝试 power shell 或超级终端以查找所有 com 端口尝试 链接

于 2013-07-31T09:33:01.170 回答