Javax.comm e RXTX

8 respostas
R

Tentei identificar porta serial com javax.comm e não consegui, coloquei os atquivos comm.jar, win32com.dll e javax.properties nos diretórios certos e nada aconteceu… então resolvi partir para o rxtx. Alguém usa ou já usou RXTX? estou tentando em windows XP…

8 Respostas

F

renata,

esse tal de RXTX eu não conheço não, mas o JavaComm eu consigo usar numa boa.

o q acontece, dá algum exception?
tenta colocar todos esses arquivos na mesma pasta dos seus .class e chama o programa assim

java -cp "Comm.jar" NomeMain

tenta e responde ai o q aconteceu
ate mais

FeOkuma

R

O problema é que ele simplesmente não acha as portas, pq o código:

int i =0;
        Enumeration ListaDePortas;
        ListaDePortas = CommPortIdentifier.getPortIdentifiers();
       
        String portas[] = new String[10];
 
        while (ListaDePortas.hasMoreElements())
        {
                CommPortIdentifier ips = (CommPortIdentifier)ListaDePortas.nextElement();
                portas[i] =(ips.getName());
                System.out.println("porta");
                System.out.println(portas[i]);
                i++;
         }

não retorna nada pois ListaDePortas.hasMoreElements() é false..
não sei se fui clara, mas d qq forma valeu!

F

vou fazer um teste e se funcionar eu coloco o codigo aki

ate mais
FeOkuma

F

olha renata, eu testei esse sou programa e funcionou melhor que o meu

o programa todo ficou assim

import java.util.Enumeration;

import javax.comm.CommPortIdentifier;



public class MainClass 
{
	public MainClass()
	{
		int i =0;
        Enumeration ListaDePortas;
        ListaDePortas = CommPortIdentifier.getPortIdentifiers();
       
        String portas[] = new String[10];
 
        while (ListaDePortas.hasMoreElements())
        {
                CommPortIdentifier ips = (CommPortIdentifier)ListaDePortas.nextElement();
                portas[i] =(ips.getName());
                System.out.println("porta");
                System.out.println(portas[i]);
                i++;
         }
	}
	
	public static void main(String[] args) 
	{
		new MainClass();
	}

}

a saida no prompt ficou assim

porta
COM3
porta
COM2
porta
LPT1
porta
LPT2

e os arquivos estão da seguinte maneiro no diretorio do projeto
…\Testes\bin\MainClass.class
…\Testes\src\MainClass.java
…\Testes.project
…\Testes.classpath
…\Testes\Comm.jar
…\Testes\javax.comm.properties
…\Testes\win32com.dll

ou seja, coloca tudo na mesma pasta. Eu uso o eclipse, e só configuro o external jars apontando para esse Comm.jar

tenta ai, e se tiver alguma dúvida coloca aí

ate mais
FeOkuma

R

muiito obrigada!
Mas, sem querer ser chata… vc mudou a linha do arquivo javax.comm.properties para reconhecer no windows?
mas já vou colocar os arquivos onde vc sugeriu.

vlw!!!

F

eu não alterei nenhum arquivo, do jeito q eu descompactei o pacote, peguei os arquivos, coloquei na pasta e usei.

lá no arquivo ta assim

#
# Drivers loaded by the Java Communications API standard extension
# at initialization time
#
# Format:
#	Each line must contain ONE driver definition only
#	Each line must be of the form:
#			driver=<ClassName>
#		No spaces or tabs in the line.
#		ClassName must implement the interface javax.comm.CommDriver
#			example: driver=Win32Serial
#	
#
# The hash(#) character indicates comment till end of line.
#
# Windows Serial Driver
Driver=com.sun.comm.Win32Driver

Não sei dizer se precisa alterar mais alguma coisa, mas esse aplicativo que eu utilizei essa api, eu distribuo para os clientes, e no instalador, esse arquivos não são colocados em nenhum outro diretório. Portanto eu acho que não é necessário alterar nada, nem na sua máquina, nem na do cliente.
É só colocar os arquivos juntos mesmo.

ate mais
FeOkuma

R

testei e deu o seguinte erro:

Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path

será que devo configurar a classpath?

R

Consegui! estava dando erro pq eu não tinha colocado a win32com.dll no windows\system

MUITO obrigada!

Criado 30 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 8
Participantes 2