CommPortIdentifier.getPortIdentifiers is empty

别说谁变了你拦得住时间么 提交于 2019-12-29 08:43:12

问题


I am building a simple application that communicates through Serial Port using the Java Communication API javax.comm.

Here is some code in my java main method I wrote:

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

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

Enumeration e is always empty even though I am connected to a COM 4 port when running this.

also, running this code:

portRead = CommPortIdentifier.getPortIdentifier("COM8");

cause the throw of NoSuchPortException

I think I have done the installation part correctly and placed the properties file, the win32com.dll file in the right places.

Do you know what the problem could be?

Thank You


回答1:


Make sure that win32com.dll (comes with javax.com) is in the jre\bin directory. Make sure javax.comm.properties (comes with javax.com) is in the jdk\lib directory.




回答2:


Remember always you need to add all the unzipped files from javax.comm.zip to jre

win32com.dll - jre/bin

comm.jar - jre/lib/ext

java.comm.properties - jre/lib (after adding this I found resolved exception problem )




回答3:


This works for me (I installed x86 jdk ) and followed the steps

Your problem is that windows could'nt communicate the right PORT to your JAVA Program.

You have to copy the right files in the right location by following this link.

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




回答4:


Find port in which your device is working(Try power shell or hyper terminal to find all com ports try link)



来源:https://stackoverflow.com/questions/15955530/commportidentifier-getportidentifiers-is-empty

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!