Search code examples
javaserial-portjavax.comm

CommPortIdentifier.getPortIdentifiers is empty


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


Solution

  • 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.