Javacomm2 não funciona

1 resposta
P

Pessoal eu peguei o exemplo da documentação do Javacomm2 e o código não funciona, percebi porque além de não comunicar com a minha impressora coloquei vários System.out.println() para ver até onde o código era executado e só foi impressoro o “Teste 4”. Alguém já passou por isso?

package impressoraserial2;
import java.io.*;
import java.util.*;
import javax.comm.*;

public class SimpleWrite {
    static Enumeration portList;
    static CommPortIdentifier portId;
    static String messageString = "STX DADOS CR LF DADOS CR LF ETX";
    static SerialPort serialPort;
    static OutputStream outputStream;

    public static void main(String[] args) {
        portList = CommPortIdentifier.getPortIdentifiers();
 System.out.println("Teste4");
        while (portList.hasMoreElements()) {
      System.out.println("Teste6");
            portId = (CommPortIdentifier) portList.nextElement();
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                 System.out.println("Teste5");
                if (portId.getName().equals("COM1")) {
                    try {
                         System.out.println("Teste3");
                        serialPort = (SerialPort)
                            portId.open("SimpleWriteApp", 2000);
                    } catch (PortInUseException PIUE) {
                        PIUE.getCause();
                        PIUE.printStackTrace();
                    }
                    try {
                         System.out.println("Teste2");
                        outputStream = serialPort.getOutputStream();
                    } catch (IOException IOE) {
                        IOE.getCause();
                        IOE.printStackTrace();
                    }
                    try {
                         System.out.println("Teste1");
                        serialPort.setSerialPortParams(4800,
                            SerialPort.DATABITS_8,
                            SerialPort.STOPBITS_1,
                            SerialPort.PARITY_NONE);
                    } catch (UnsupportedCommOperationException UCOE) {
                        UCOE.getCause();
                        UCOE.printStackTrace();
                    }
                    try {
                        System.out.println("Teste");
                        outputStream.write(messageString.getBytes());
                    } catch (IOException IOE) {
                        IOE.getCause();
                        IOE.printStackTrace();
                    }
                }
            }
        }
    }
}

1 Resposta

R

Kra, já passei por isso sim…

é o seguinte, vamos iniciar do ZERO.

q sistema operacional está usando??

tenho as respostas de todas as tuas perguntas sobre o Javax COMM…

na minha aplicação, tb nao identificava nenhuma porta… mas o problema era de localização dos arquivos…

se for windows, vai ter q colocar os arquivos javax.comm.properties e comm.jar nos diretorios libs do JDK e do JRE (na dúvida, coloca nos dois). E a DLL win32com.dll tem q fikar no diretorio BIN dos dois tb…

nao esqueça q no arquivo de properties, tem q conver a seguinte linha (Se for WINDOWS):
Driver=com.sun.comm.Win32Driver

e ouvi dizer q tem q ter uma linha em branco logo abaixo dessa informação no arquivo…

t+

Criado 7 de junho de 2006
Ultima resposta 12 de jun. de 2006
Respostas 1
Participantes 2