Linguagem de Programação JAVA |
Com o objetivo de integrar as impressoras fiscais Bematech com aplicações de automação comercial, desenvolvidas na linguagem de programação Java, compatibilizamos nossa dll BemaFI32
O JNI permite que um código escrito em Java utilize a implementação de uma biblioteca escrita em C/C++, assembly ou outras linguagens de programação. Além disso, ele serve para interagir entre programas Java e outros programas escritos em linguagens diferentes. A figura abaixo demonstra isso:
Existe um pacote chamado Bematech.jar, o qual contém todas as classes utilizadas para realizar as operações com as impressoras fiscais. Mas, para poder utilizá-lo, é necessário possuir instalado o ou superior e, alem disso, as variáveis de ambiente path, classpath e java_home configuradas corretamente.
Para configurar as variáveis, proceda da seguinte forma:
1) Clique com o botão direito em "Meu Computador" e escolha "Propriedades"; 2) Clique na aba "Avançado" e no botão "Variáveis de Ambiente"; 3) Nas variáveis de usuário, procure a variável chamada path, se não existir crie-a, definindo path como seu nome e o diretório onde estão os arquivos binários do java, por exemplo:
Nome da variável: path Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05\bin
4) Procure a variável JAVA_HOME. Caso ela não exista, crie-a, atribuindo-lhe como valor o local onde o JRE está instalado, por exemplo:
Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05
5) A variável CLASSPATH deve ser configurada com o seguinte valor:
Valor da variável: .;JAVA_HOME
A utilização dos métodos nativos que acessam as funções da BemaFI32.dll é feita da seguinte forma:
1) Adicionar no projeto Java o arquivo Bematech.jar, do pacote da BemaFI32.dll disponível no site. 2) Adicionar a seguinte linha de código à classe do projeto:
import bemajava.*;
Observação:
(...) BemaString numerocupom; numerocupom = new BemaString();
Bematech.NumeroCupom( numerocupom ); System.out.println( "Número do Cupom: " + numerocupom.getBuffer() ); (...)
Exemplo:
import bemajava.*; class TesteBematech { public static void main(String[] args) { int iRetorno; BemaInteger ACK, ST1, ST2, ST3; ACK = new BemaInteger(); ST1 = new BemaInteger(); ST2 = new BemaInteger(); ST3 = new BemaInteger();
// Habilitando o retorno estendido da impressora MFD iRetorno = Bematech.HabilitaDesabilitaRetornoEstendidoMFD( "1" );
// Emitindo uma Leitura X iRetorno = Bematech.LeituraX(); System.out.println( "Retorno: " + iRetorno );
// Pegando o retorno da impressora MFD iRetorno = Bematech.RetornoImpressoraMFD( ACK, ST1, ST2, ST3 ); String retorno = "ACK: " + ACK.number retorno += "\nST1: " + ST1.number retorno += "\nST2: " + ST2.number retorno += "\nST3: " + ST3.number; System.out.println( "Retorno Impressora MFD: \n" + retorno ); } } |