Não consigo acessar a Porta Serial USB com o javax.comm;

Estou com um certo problema, quando startup minha aplicação, ela funciona tudo bonitinho, mas quando tento me conectar a USB… Da alguns erros, diz que não consegue achar o driver. Imagino que seja erro no api comm. Pois fora da aplicação a USB funciona blzinha.

Gostaria de alguns comentarios e se alguém sofreu este tipo de problema???

Grato

Você tem um driver USB que simula uma serial, é isso?

O javax.com tem um problema. Ele só detecta as portas no momento que a classe é inicializada. Por isso, se você subir sua aplicação ANTES da porta USB ser “transformada” numa COM, ela nunca estará disponível para sua aplicação.

O método que faz essa detecção é private, então não há uma maneira fácil de chama-lo.

A maneira difícil, usando reflection, é essa aqui:

[code]
/**
* Refreshes the port list, redetect all system ports. It’s desirable that no
* serial connection is openned before calling this method.
*/
public static void refreshComPorts()
{
try
// try reloading the driver
{
Field masterIdList_Field = CommPortIdentifier.class.getDeclaredField(“masterIdList”);
masterIdList_Field.setAccessible(true);
masterIdList_Field.set(null, null);

        String temp_string = System.getProperty("java.home")
                + File.separator + "lib" + File.separator
                + "javax.comm.properties";
        Method loadDriver_Method = CommPortIdentifier.class.getDeclaredMethod(
                "loadDriver", new Class[] {String.class});
        loadDriver_Method.setAccessible(true); // unprotect it
        loadDriver_Method.invoke(null, new Object[] {temp_string});
    }
    catch (Exception e)
    {
         //Faça o log dessa exceção. Removi meu código específico para isso.
    }
}[/code]

Esse método atualiza a lista de portas. Você pode usa-lo antes de exibir as portas para o usuário escolher, ou antes de sua classe tentar acessar sua porta padrão USB.