serial
O codigo a baixo é o mesmo do Simpleread da sun, me retorna um erro,
coloqueo o rxtx na pasta do jdk/jre/lib/ext
Exception in thread main java.lang.UnsupportedClassVersionError: serial : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: serial. Program will exit.
coloqueo o rxtx na pasta do jdk/jre/lib/ext
import gnu.io.*;
import java.io.*;
import java.util.*;
public class serial implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;
InputStream inputStream;
SerialPort serialPort;
Thread readThread;
/**
* Method declaration
*
*
* @param args
*
* @see
*/
public static void main(String[] args) {
boolean portFound = false;
String defaultPort = /dev/term/a;
if (args.length > 0) {
defaultPort = args[0];
}
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals(defaultPort)) {
System.out.println(Found port: +defaultPort);
portFound = true;
//serial reader = new serial();
}
}
}
if (!portFound) {
System.out.println(port + defaultPort + not found.);
}
}
/**
* Constructor declaration
*
*
* @see
*/
public serial() {
try {
serialPort = (SerialPort) portId.open(SimpleReadApp, 2000);
} catch (PortInUseException e) {}
try {
inputStream = serialPort.getInputStream();
} catch (IOException e) {}
try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}
serialPort.notifyOnDataAvailable(true);
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
readThread = new Thread(this);
readThread.start();
}
/**
* Method declaration
*
*
* @see
*/
public void run() {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {}
}
/**
* Method declaration
*
*
* @param event
*
* @see
*/
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] readBuffer = new byte[20];
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
}
System.out.print(new String(readBuffer));
} catch (IOException e) {}
break;
}
}
}
Exception in thread main java.lang.UnsupportedClassVersionError: serial : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: serial. Program will exit.
Ronaldo Garcia
Curtidas 0
Respostas
Ronaldo Garcia
23/04/2012
Bom dia!
Estou precisando de ajuda com referencia a comunicação serial, pois ja peguei alguns exemplos e tive a infelicidade ou falta de conhecimento quanto a ler dados na porta serial.
o erro abaixo é refernte a classe SimpleRead.java
quando executo pelo eclipse retorna esse erro.
fico no aguardo.
Exception in thread main java.lang.UnsupportedClassVersionError: SimpleRead : Unsupported major.minor version 51.0
Estou precisando de ajuda com referencia a comunicação serial, pois ja peguei alguns exemplos e tive a infelicidade ou falta de conhecimento quanto a ler dados na porta serial.
o erro abaixo é refernte a classe SimpleRead.java
quando executo pelo eclipse retorna esse erro.
fico no aguardo.
Exception in thread main java.lang.UnsupportedClassVersionError: SimpleRead : Unsupported major.minor version 51.0
GOSTEI 0
Robson Teixeira
23/04/2012
Sua classe deve possuir o serialVersionId pois com esse atributo e possivel realizar as tarefas que deseja e também ambas suas classes devem implementar Serializable.
espero ter ajudado.
att
robson
espero ter ajudado.
att
robson
GOSTEI 0
Edson Melo
23/04/2012
ola pessoal, estava passando por aqui e vi, trabalho com delphi, a pouco tempo, mas pelo que li, levanto uma pequena lebre que talvez faça sentido, ou talvez abra mais conhecimento.
pessoal, a saida paralela dos computadores, ja não existe mais, a saida serial esta indo pelo mesmo caminho, porque então continuar a usar, ou desenvolver sistemas utilizando esta opções fadada ao fim, todas elas estão indo para a USB, não seria mais logico, começar mos a pensar nas USB como porta de Comunicação, ou sera que USB e Serial seriam compativeis.
Não me entendam mal, não quero desencorajar nada, mas e para se pensar no que falei, e evitaria dores de cabeça futura na hora que a porta Serial for abandonada como foi a Paralela.
ate breve
pessoal, a saida paralela dos computadores, ja não existe mais, a saida serial esta indo pelo mesmo caminho, porque então continuar a usar, ou desenvolver sistemas utilizando esta opções fadada ao fim, todas elas estão indo para a USB, não seria mais logico, começar mos a pensar nas USB como porta de Comunicação, ou sera que USB e Serial seriam compativeis.
Não me entendam mal, não quero desencorajar nada, mas e para se pensar no que falei, e evitaria dores de cabeça futura na hora que a porta Serial for abandonada como foi a Paralela.
ate breve
GOSTEI 0
Ronaldo Garcia
23/04/2012
Meu caro amigo Edson, infelizmente pessoas com pensamento conservador no topo da administração do negocio pensão que time que se esta ganhando não se meche, só esqueceu de pensar na evolução da tecnologia.
Sistema atual é todo em cobol e sistema de comunicação é serial, então penso em trafegar nos dois sentitos, rede normal com RJ45 e serial, após cincronizar dados e quando estiver 100%, cortar esse tipo de comunicação, estou estudando isso mas não consegui nada concreto.
obrigado pela compreenção, e não te enterpretei mau. um abraço!
Sistema atual é todo em cobol e sistema de comunicação é serial, então penso em trafegar nos dois sentitos, rede normal com RJ45 e serial, após cincronizar dados e quando estiver 100%, cortar esse tipo de comunicação, estou estudando isso mas não consegui nada concreto.
obrigado pela compreenção, e não te enterpretei mau. um abraço!
GOSTEI 0
Daniel
23/04/2012
Quanto aos outros integrantes do fórum, por favor, vamos parar de dar opinião pessoal principalmente quando não sabe das coisas. As portas seriais são extremamente utilizadas na indústria e automação e existem várias variantes. A USB é uma delas. Gostaria que os fóruns fossem mais sérios e objetivos.
Meu amigo Ronaldo, tenta usar o código que te enviei abaixo. Precisa da lib rxtxcomm que deve ser a mesma que vc está suando. Lembrando que deve ter a lib correspondente ao seu sistema operacional respeitando o tamanho da palavra com que ele trabalha (se é 64 ou 32 bits). Vc precisa usá-la da seguinte maneira. Provavelmente seu outro código foi compilado em uma versão superior ao jre que vc tem instalado. Compila este código lembrando de adicionar o método main chamando o connect e alterar o número da sua porta e parâmetros de comunicação para o dispositivo.
Copie para RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext
Copie rxtxSerial.dll ---> <JAVA_HOME>\jre\bin
Código:
Meu amigo Ronaldo, tenta usar o código que te enviei abaixo. Precisa da lib rxtxcomm que deve ser a mesma que vc está suando. Lembrando que deve ter a lib correspondente ao seu sistema operacional respeitando o tamanho da palavra com que ele trabalha (se é 64 ou 32 bits). Vc precisa usá-la da seguinte maneira. Provavelmente seu outro código foi compilado em uma versão superior ao jre que vc tem instalado. Compila este código lembrando de adicionar o método main chamando o connect e alterar o número da sua porta e parâmetros de comunicação para o dispositivo.
Copie para RXTXcomm.jar ---> <JAVA_HOME>\jre\lib\ext
Copie rxtxSerial.dll ---> <JAVA_HOME>\jre\bin
Código:
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
*
* @author dmrocha
*/
public class TwoWaySerialComm {
public TwoWaySerialComm() {
super();
}
void connect(String portName) throws Exception {
CommPortIdentifier portIdentifier =
CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {
System.out.println(Error: `port is currently in use);
} else {
CommPort commPort = portIdentifier.open(this.getClass().getName(), 2000);
if (commPort instanceof SerialPort) {
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
} else {
System.out.println(Error: only serial ports are handled by this example.);
}
}
}
void disconnect (String portName) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()){
CommPort commPort = portIdentifier.open(this.getClass().getName(), 2000);
commPort.close();
}
}
public static class SerialReader implements Runnable {
InputStream in;
public SerialReader(InputStream in) {
this.in = in;
}
public void run() {
byte[] buffer = new byte[1024];
int len = -1;
try {
Principal principal = new Principal();
while ((len = this.in.read(buffer)) > -1) {
System.out.print(new String(buffer, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static class SerialWriter implements Runnable {
OutputStream out;
public SerialWriter(OutputStream out) {
this.out = out;
}
public void run() {
try {
int c = 0;
while ((c = System.in.read()) > -1) {
this.out.write(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
GOSTEI 0
Ronaldo Garcia
23/04/2012
Muito obrigado Daniel, pois vou fazer os testes! muito obrigado pela força e embreve retornarei!
GOSTEI 0
Edson Melo
23/04/2012
caro daniel, este e um forum de debates sobre esperiencias e ideias, nãoo tive a intenção de atrapalhar, mas tive uma criação que me ensinou a escutar analizar e aproveitar ideias que me parecem boas, por isso postei a mensagem, mas pessoas atrazadas e com ideias fioxas , nunca vao entender estas posições, este e um forum onde cada um expoe suas ideias, se serão aproveitadas muito bem, se nao desconsidere, simplesmente isso.
mas me alegro por ter uma visao da evolução e nao ficar pensando em tecnologias ja quase ultarpassadas, pois estão surgindo nmovas que com certesa substituirão as atuais , e porque não ja nos preparar mos para um futuro, que creio sera melhor.
desculpem me pela intromissao, se todos pensassem do mesmo modo , não havia problemas sem solução não e
mas me alegro por ter uma visao da evolução e nao ficar pensando em tecnologias ja quase ultarpassadas, pois estão surgindo nmovas que com certesa substituirão as atuais , e porque não ja nos preparar mos para um futuro, que creio sera melhor.
desculpem me pela intromissao, se todos pensassem do mesmo modo , não havia problemas sem solução não e
GOSTEI 0