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…
Javax.comm e RXTX
8 Respostas
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
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!
vou fazer um teste e se funcionar eu coloco o codigo aki
ate mais
FeOkuma
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
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!!!
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
testei e deu o seguinte erro:
Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path
será que devo configurar a classpath?
Consegui! estava dando erro pq eu não tinha colocado a win32com.dll no windows\system
MUITO obrigada!