import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static private String messageString = ""; // "??"+char(0)+"??§"+char(0);
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) {
messageString = String.valueOf((char)2)+
String.valueOf((char)4)+
String.valueOf((char)0)+
String.valueOf((char)27)+
String.valueOf((char)5)+
String.valueOf((char)32)+
String.valueOf((char)0);
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
// if (portId.getName().equals("COM1")) {
if (portId.getName().equals("/dev/term/a")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
} catch (PortInUseException e) {}
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
try {
outputStream.write(messageString.getBytes());
} catch (IOException e) {}
}
}
}
}
}
API javacomm porque não escreve?
11 Respostas
O q essa API faz :?:
kara simplesmente ela permite q vc escreva ou leia de qualquer coisa q esteja conectada nas portas.
pelo q eu entendi eh isso!
mas já informando q ja resolvi o problema!
era simplesmente erro de dll.
valeu!
Dougnard,
Kra, qual foi realmente o problema da dll…estou fazendo uma aplicação q usa tb a comm.jar…e tb não faz nada…o que pode ter acontecido???
Valeu antecipadamente.
na pasta do jdk instalado no seu computador, dentro da pasta jre/lib tem q jogar a dll q vem junto e a javax.comm.properties. além das outras configurações na qual acima ja falei!
O problema eh que isso jah foi feito…eu fiz uma aplicação teste no console e ela funcionou perfeitamente…como eu presciso que funcione via web…ele não faz nada…jah coloquei o arquivo comm.jar dentro da pasta lib da minha aplicação…e nada…se você tiver alguma idéia do que mais está faltando eu fico imensamente grato…
Valeu.
kara eu estou com o mesmo problema, coloquei a Comm.jar e javax.comm.properties dentro de %JAVA_HOME%\lib e a .dll dentro de JAVA_HOME%\bin, depois as coloquei tb em jre\bin e continua sem detectar as portas, o Enumerator sempre obtem null, já teste no win98 e XP e nada, nem sinal das malditas portas COM :oops:
o q eu faço, como vcs conseguiram 8O
valewwwwww :lol:
estou com o mesmo problema acima
bom pessoal, eu tenho uma aplicação que funciona direitinho.
Eu faço o seguinte, coloco os três arquivos: comm.jar, win32com.dll e javax.comm.properties na mesma pasta onde estão as minhas classes.
Aí é soh chamar a aplicação.
fica assim
java -cp "Comm.jar" MainDaApp
eu uso o eclipse, e antes de usar a api no meu codigo, eu coloco estes arquivos na pasta do projeto e adiciono este comm.jar, como external jar.
Pra mim funcionou direitinho, e eu envio para os clientes desta forma, com estes arquivos todos juntos. Assim não precisa colocar nas pastas do Java.
espero q ajude
ate mais
FeOkuma
Pessoal, o pacote que eu estou baixando não vem os dll nem o arquivo properties. Se eu baixo a API pra outras estruturas (sparc ou linux) ele vem com o properties.
Qual o link exato pra baixar a biblioteca pra windows?
No site da sun ele usa a seguinte frase:
Implementations of the API are currently available for Solaris SPARC, Solaris x86, and Linux x86.
Isso quer dizer que não funciona no meu windows?
Pessoal,
consegui baixar o pacote certo aqui, só coloquei a comm.jar, o dll e o properties na raiz da aplicação e funcionou (pelo menos não deu erro nenhum).