Link to home
Start Free TrialLog in
Avatar of cbumpste
cbumpste

asked on

Listing Comm ports on WinXP SP2

Hi,

I have the following code from the book Java I/O:

import javax.comm.*;
public class NamedPortLister {
  public static void main(String[] args) {
    // List serial (COM) ports.
    try {
      int portNumber = 1;
      while (true) {
        CommPortIdentifier.getPortIdentifier("COM" + portNumber);
        System.out.println("COM" + portNumber);
        portNumber++;
      }

    }
    catch (NoSuchPortException ex) {
      // Break out of loop.
    }
    // List parallel (LPT) ports.
    try {
      int portNumber = 1;
      while (true) {
        CommPortIdentifier.getPortIdentifier("LPT" + portNumber);
        System.out.println("LPT" + portNumber);
        portNumber++;
      }
    }
    catch (NoSuchPortException ex) {
      // Break out of loop.
    }
  }
}

I have tried Netbeans & the command line. Both compile and *seem* to run, however there is no output??
Running WinXp SP2
Java Comm 2.0
JDK 1.5.07

Cheers,
Craig
Avatar of Tommy Braas
Tommy Braas
Flag of Australia image

You are probably getting an exception, which you are ignoring. Ignoring as VERY BAD practice!

Add a:
ex.printStackTrace();
to each catch to see what is going on
'as' in the above should be 'is'... :-)

Such that:
Ignoring exceptions is VERY BAD practice!
Avatar of girionis
Try to code the catch block, it might be going in there, i.e. not finding any port. Change this

>  catch (NoSuchPortException ex) {
>       // Break out of loop.
>     }

to

catch (NoSuchPortException ex) {
     System.out.println("Exception: " + ex);
    }

and see if you get any error messages.
make sure you corectly installed the javacomm dll and properties file as per the install document.
And make sure the javax.comm.properties is in the correct place (<jdk>/lib), otherwise have a look in the installation instructions for alternative locations.
Bah... objects was faster.
Avatar of cbumpste
cbumpste

ASKER

Thanks guys,

I added the exception that you suggested. I got the following:


javax.comm.NoSuchPortException
        at javax.comm.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:105)
        at NamedPortLister.main(NamedPortLister.java:8)
Exception: javax.comm.NoSuchPortException
Exception: javax.comm.NoSuchPortException

No such port? I have a physical port on my laptop.
I have Administrator rights on the box.

Cheers,
Craig
ASKER CERTIFIED SOLUTION
Avatar of girionis
girionis
Flag of Greece image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
girionis,

The jre directory under the jdk directory was missing those files. Bugger!

Thanks again everyone!!!
Guys,

Sorry that it appears that only a single person can be assigned points.

The tips on the printing exceptions were good as well.

Cheers,
Craig