Problema Emulador Bematech com Windows 7 64 bit - Software Frente de Caixa no NetBeans
10 respostas
M
MarceloMVT
Bom Dia… O meu problema é o seguinte, eu estou começando o desenvolvimento de uma aplicação frente de caixa com o NetBeans 7.2.1
Então instalei o Emul2100, e instalei um VSPE para emular as portas, eu ja tentei criar uma porta virtual e setar o valor “EmulMFD=0” criando porta virtual e
"EmulMFD=1" sem criar porta virtual…
Procurei na internet e parece que pra windows 64 tem que colocar as DLL´s na pasta SysWOW64, mais não sei como alterar o chamado pra pasta certa.
Abaixo segue a exception
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Windows\System32\BemaFI32.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at bemajava.Bematech.<clinit>(Bematech.java:338)
at teste.Teste.main(Teste.java:18)
Java Result: 1
Não sei o que fazer… e queria anular a opção de voltar a usar um sistema 32 bits
Sou novo nisso ainda to aprendendo, desculpa a pergunta, pode ser boba, eu teria que Instalar o JDK 32 bit? ou Criar uma Máquina virtual 32 bits pra rodar o java?
E
entanglement
As duas respostas funcionam, mas recomendaria usar a JVM de 32 bits, que é algo bem mais fácil de fazer, sem contar que pode ser que o seu software de virtualização não consiga lidar bem com as portas seriais ou USB se você não configurar direito.
M
MarceloMVT
E como faço isso? como uso a JVM 32 bit?
E
entanglement
Basta instalar a JVM de 32 bits (na página de download é “Windows x86”), não precisa fazer mais nada.
M
MarceloMVT
Obrigado a vcs pelas respostas, bom eu Instalei mais o erro continua, mesma exception
E
entanglement
Como é que você inicia seu programa? Como é que você sabe se está usando a JVM certa?
Para 32 bits:
C:\jdk1.7.0\bin>java -version
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) Client VM (build 23.6-b04, mixed mode, sharing)
Para 64 bits:
C:\Program Files\Java\jdk1.6.0_22\bin>java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)
Note que para 32 bits não aparece a expressão “64-bit”
D
drsmachado
Opa, beleza?
Cara, o que acontece é que no jar da bematech, que vem com a BemaFI64.dll, há uma linha que carrega a biblioteca dinâmica, mas, chama pela versão 32 bits.
O ideal é utilizar os arquivos .java que estão dentro do zip, nele você pode trocar o
System.loadLibrary("BemaFI32");
Por
System.loadLibrary("BemaFI64");
Claro, sem esquecer de colocar a DLL BemaFI64 e os demais arquivos listados no readme dentro de Windows\System32 (e não SysWow64).
Ah, se for utilizar os .java, lembre-se de colocá-los num package com nome bemajava, pois a DLL foi criada para atender requisições da classe com os métodos nativos a partir deste package, ok?
M
MarceloMVT
Eu realmente estava usando um JVM 64, desinstalei tudo e reinstalei de novo, agora o problema exception foi resolvido, meu problema agora é com o emulador da impressora fiscal, fiz uma classe pra teste:
importbemajava.*;importjavax.swing.JOptionPane;publicclassTeste{publicstaticvoidmain(String[]args){intiRetorno;iRetorno=Bematech.LeituraX();if(iRetorno==0){JOptionPane.showMessageDialog(null,"Erro= Nº"+iRetorno+" - Erro de Comunicação");}else{JOptionPane.showMessageDialog(null,"Erro= Nº"+iRetorno+" - Outra coisa, Depois Colocamos as outras opções de retorno!");}}}
Creio que o meu problema agora seja com o virtualizador de porta serial, parece que só tem versão free para 32 bits, então creio que o erro de comunicação venha dai
alguém saberia me dizer se existe alguma outra forma de emular a impressora bematech? sem que seja utilizando o VSPE ou o Bemafith, alguma outra opção?
E
ericke_accyole
Amigo, é so voce executar o emulador como administrador e depois de aberto o emulador clica com botao direito dele e configuração. Dai vai aparecer pra voce selecionar o numero da porta.