Configurar java comunication API
Es el API que proporciona Sun mediante el cual podemos
controlar el Puerto Serie (RS-232) y el Paralelo (IEEE-1284). Con este API se
puede acceder a dichos puertos para poder leer o escribir en ellos.
La versión 3.0 de Sun no está disponible para Windows pero
se puede usar la javax.comm 2.0.3.
Instalación
Descargar e
instalar la última versión del JDK de la página web de Sun.
Descargar el
javax.comm para Windows.
Una vez
descargado, se descomprime y, entre otras cosas, aparecen 3 archivos que habrá
que mover a diferentes ubicaciones:
win32comm.dll -> C:\Archivos de
Programa\Java\jdk1.6.0_12\jre\bin
javax.comm.properties -> C:\Archivos
de Programa\Java\jdk1.6.0_12\jre\lib
comm.jar -> C:\Archivos de Programa\Java\jdk1.6.0_12\jre\lib\ext
Sólo falta un último paso, en el proyecto ya creado pinchar con el botón derecho > Properties > Java Buid Path > Libraries > Add External JARs y una vez allí añadimos el archivo comm.jar (C:\Archivos de Programa\Java\jdk1.6.0_12\jre\lib\ext)
Descarga javax comm
Codigo de prueba
import java.util.*;
import javax.comm.*;
import javax.swing.*;
public class PortList {
static Enumeration listaPort;
static CommPortIdentifier idPort;
public static void main(String[] args)
{
listaPort = CommPortIdentifier.getPortIdentifiers();
ListaPuertos();
}
private static void ListaPuertos()
{
String lista="";
lista +="Los puertos disponibles son:";
while (listaPort.hasMoreElements())
{
idPort = (CommPortIdentifier) listaPort.nextElement();
lista +="PUERTO: " + idPort.getName() + " ";
if (idPort.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
lista +="RS-232 (" + idPort.getPortType() + ")";
} else if (idPort.getPortType() == CommPortIdentifier.PORT_PARALLEL)
{
lista +="IEEE 1284 (" + idPort.getPortType() + ")";
} else lista +="Tipo de puerto desconocido";
// Describimos si esta disponible.
if (idPort.isCurrentlyOwned())
lista +="OCUPADO por: " +
idPort.getCurrentOwner();
else
lista +="DISPONIBLE";
lista +="\n---------------------------------------------\n";
}
JOptionPane.showMessageDialog(null,lista);
}
}