CommPortIdentifier.getPortIdentifiers is empty

Saher Ahwal picture Saher Ahwal · Apr 11, 2013 · Viewed 16.4k times · Source

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

Answer

user3311900 picture user3311900 · Feb 14, 2014

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 )