Problemas com impressora fiscal 2100

4 respostas
batista.gerson

Olá pessoal, to com problema e não sei como resolver…

tenho uma aplicação desktop que usara a impressora bematech 2100
o problema está que eu nao consigo rodar nem o exemplo que tem no site da bematech

fiz tudo como ta no site, configurei a varivel de ambiente, coloquei a bematech.jar no projeto
add as dll windows\system32 e mesmo assim continua dando erro será que alguem tem uma dica.
o erro é esse.

Exception in thread "main" java.lang.UnsatisfiedLinkError: AbreCupom
        at Bematech.AbreCupom(Native Method)
        at TesteBematech.main(TesteBematech.java:21)
Java Result: 1

4 Respostas

eliangela

Parece que o java não está encontrando alguma função da DLL.
Se vc tiver chamando uma DLL em algum lugar, tenta colocar o caminho completo o diretório da DLL, ex.:

"C:\\Teste\\suaDLL"

ou tente jogar essas DLL’s no diretório do windows.

Qualquer coisa, posta seu código aí pra gente dar uma olhada…
Fica muito difícil ajudar sem saber como que está seu código.

batista.gerson

eliangela to tentando usar o exemplo que ta no site e mesmo assim nao to conseguindo

public class TesteBematech {

    @SuppressWarnings("static-access")
    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();

        //      Emitindo uma Leitura X
        //      iRetorno = Bematech.LeituraX();
        //      System.out.print("Retorno: " + iRetorno);

        Bematech.AbreCupom("");
        int i = Bematech.AbreCupom("");
        i = Bematech.VendeItem("01", "Produto Teste", "II", "I", "4", 2, "0,25", "$", "0");
        i = Bematech.IniciaFechamentoCupom("A", "%", "1000");
        i = Bematech.EfetuaFormaPagamento("Cartão VISA", "50,00");
        i = Bematech.TerminaFechamentoCupom("Obrigado pela Preferencia!");

        // 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.print("Retorno Impressora MFD: \n" + retorno);
    }
}
eu criei a classe Bematech.java pois desconfiava que nao estava encontrando a dll,
static {
    System.load("C:\\WINDOWS\\system32\\BemaFI32.dll");
    //System.loadLibrary("BemaFI32.dll");
    }
}
ja tentei dos dois jeitos como pode ver e continua com o mesmo erro. ja configurei as variaveis de ambiente e nada mesma erro.
eliangela

Dá uma olhada nesse tópico http://www.guj.com.br/posts/list/132837.java e neste site http://javaniando.blogspot.com/2008/02/acessando-bibliotecas-nativas-com-jna.html

Vê se ajuda… me ajudou bastante, e eu estava com o mesmo problema.

alexgodoyrodrigues

eu tambem tive este mesmo problema, baixei outra versão da dll da bematech e funcionou.!

t+

Criado 20 de julho de 2009
Ultima resposta 21 de set. de 2009
Respostas 4
Participantes 3