title: RXTX cannot list or find ports under windows 7 64 bits
body: <p>Good morning,</p>
  
  <p>I'm having issues using/or installing rxtx on windows 7 64 bits. I worked with it previously on a x86 win XP system and had no issues. Since reinstalling to this new system for some reason rxtx is unable to locate any ports whatsoever. I've tried the rxtx install, Cloud Hopper's 64 bit native library and deleting all rxtx files and starting from scratch. RXTXcomm.jar is found and I can browse the packages in NetBeans but the implementation seems to be broken or not found.</p>
  
  <p>This line fails when executing, every time :</p>
  
  <pre><code>comPort = "COM1";
  portId = CommPortIdentifier.getPortIdentifier(comPort);
  </code></pre>
  
  <p>and throws a NoSuchPortException.</p>
  
  <p>Listing the serial ports using this produces nothing.</p>
  
  <pre><code>Enumeration ports = CommPortIdentifier.getPortIdentifiers();
  String portArray[] = null;
  while (ports.hasMoreElements()) {
      CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
      System.out.println(port.getName());
  } 
  </code></pre>
  
  <p>I've checked the serial ports are available so at this point I'm wondering if the native libraries are simply broken for windows 7 64 bits. </p>
  
  <p>Has anyone successfully used RXTX 2.2pre2 under windows 7 64 bits?</p>
  
  <p>Offending code section in constructor : </p>
  
  <pre><code>public SerialControl(String name, String comPort, int baudrate, int databits, String     parity, double stopbits) throws Exception {
      int stop = 0;
      int data = 0;
      int par = 0;
  
      this.name=name;
  
      // Sanity checks and interpretation
      if (baudrate &gt; 115200 || baudrate &lt; 300) {
          System.err.println(name+": constructor(): Invalid baudrate "+baudrate);
          throw new Exception("Invalid baudrate, " + baudrate);
      }
  
      if (databits &gt;= 5 &amp;&amp; databits &lt;= 8) {
          switch (databits) {
              case 5:
                  data = SerialPort.DATABITS_5;
                  break;
              case 6:
                  data = SerialPort.DATABITS_6;
                  break;
              case 7:
                  data = SerialPort.DATABITS_7;
                  break;
              case 8:
                  data = SerialPort.DATABITS_8;
                  break;
              default:
                  System.err.println(name+": constructor(): Invalid data bits, switched " + databits);
                  throw new Exception("Invalid data bits, switched " + databits);
          }
      } else {
          throw new Exception("Invalid data bits=" + databits);
      }
  
      if (stopbits &gt;= 1.0 &amp;&amp; stopbits &lt;= 2.0) {
  
          if (stopbits == 1.0) {
              stop = SerialPort.STOPBITS_1;
          } else if (stopbits == 1.5) {
              stop = SerialPort.STOPBITS_1_5;
          } else if (stopbits == 2.0) {
              stop = SerialPort.STOPBITS_2;
          } else {
              System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
              throw new Exception("Invalid stop bits, switched " + stopbits);
          }
      } else {
          System.err.println(name+": constructor(): Invalid stop bits, switched " + stopbits);
          throw new Exception("Invalid stop bits " + stopbits);
      }
  
      switch (parity) {
          case "S":
              par = SerialPort.PARITY_SPACE;
              break;
          case "E":
              par = SerialPort.PARITY_EVEN;
              break;
          case "M":
              par = SerialPort.PARITY_MARK;
              break;
          case "O":
              par = SerialPort.PARITY_ODD;
              break;
          case "N":
              par = SerialPort.PARITY_NONE;
              break;
          default:
              System.err.println(name+": constructor(): Invalid parity, switched " + parity);
              throw new Exception("Invalid parity, switched " + parity);
      }
  
      // Inits
      // Try to find the port specified
      try {
          portId = CommPortIdentifier.getPortIdentifier(comPort);
      } catch (Exception e) {
          System.err.println(name+": constructor(): No such port \"" + comPort+"\"");
          e.printStackTrace();
          throw e;
      }
  
      // Open the port
      try {
          serialPort = (SerialPort) portId.open("User Port", 2000);
      } catch (PortInUseException e) {
          System.err.println(name+": constructor(): Could not open port " + comPort);
          throw e;
      }
  
      // Grab the input stream
      try {
          inputStream = serialPort.getInputStream();
      } catch (IOException e) {
          System.err.println(name+": constructor(): Could not get input stream for " + comPort);
          throw e;
      }
  
      // Set the serial port parameters, no flow control
      try {
          serialPort.setSerialPortParams(baudrate, data, stop, par);
          serialPort.setDTR(false);
          serialPort.setRTS(false);
      } catch (UnsupportedCommOperationException e) {
          System.err.println(name+": constructor(): Error initializing " + comPort);
          throw e;
      }
  }
  </code></pre>