Erro com Emulador Bematech, e java.library.path

3 respostas
userguj

O objetivo é simular uma impressora fiscal Bematech no meu pc, que está rodando com Windows 7 (64-bits).

Tenho uma classe chamada "Main" para testa-la..:

package teste;

import bemajava.*;
/**
 *
 * @author user
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int iRetorno;

        iRetorno = Bematech.LeituraX();
        System.out.println("Retorno = " + iRetorno);
    }

}

Após algumas pesquisas descobri que deve-se colocar os arquivos .dll e .ini na pasta C:\Windows\SysWOW64, foi feito isso...
dai durante o processo de execução no NetBeans ocorre o seguinte erro..:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no BemaFI32 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at bemajava.Bematech.(Bematech.java:338) at teste.Main.main(Main.java:20) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Tentei atraves de algumas configurações do NetBeans settar o local de busca da .dll, mas não consegui.

Vi alguns topicos falando que não seria possivel devido a .dll não ser compativel com 64-bits, porém também vi outro falando que seria possivel colocando a .dll na pasta citada anteriormente.

:D

3 Respostas

eltonads

Até onde eu sei cara, a Bematech não faz versões 64bits dessas DLLs…
Mas nunca tentei nada diferente… O que você pode fazer é testar seu software numa máquina virtual 32bits (tipo um VMWare da vida) ou numa outra máquina 32bits, pra ver o que dá.

userguj

Até onde eu sei cara, a Bematech não faz versões 64bits dessas DLLs…
Mas nunca tentei nada diferente… O que você pode fazer é testar seu software numa máquina virtual 32bits (tipo um VMWare da vida) ou numa outra máquina 32bits, pra ver o que dá.

Sim , mas pelo que li , é possivel dependendo de onde se colocar a .dll i o .ini !!

kalindii

Esse post estava meio encostado mas testei o que o amigo disse de colocar BemaFI32.dll na pasta C:\Windows\SysWOW64 e consegui me comunicar com o projeto java de teste que criei conforme esse exemplo: http://social.msdn.microsoft.com/Forums/pt-BR/geralpt/thread/51377f4a-0368-4f43-a33e-e1738176a7c4
Qualquer dúvida!

Criado 11 de outubro de 2010
Ultima resposta 1 de nov. de 2011
Respostas 3
Participantes 3