Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 451
Saher Ahwal Avatar asked Apr 11 '13 17:04

Saher Ahwal


3 Answers

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 )

like image 153
user3311900 Avatar answered Oct 31 '22 18:10

user3311900


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.

like image 29
Outlier Avatar answered Oct 31 '22 19:10

Outlier


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

like image 1
Algerowalid Avatar answered Oct 31 '22 18:10

Algerowalid