Ola pessoal!
Estou com um dificuldade, quando tento carregar a dll na minha classe aparece a seguinte mensagem ao rodar o programa:
[color=red]Exception in thread “main” java.lang.UnsatisfiedLinkError: teste2.bematech.Bematech.AberturaDoDia(Ljava/lang/String;Ljava/lang/String;)I
at teste2.bematech.Bematech.AberturaDoDia(Native Method)
at teste2.Main.main(Main.java:19)
Java Result: 1[/color]
O engraçado é que estou fazendo um teste com a dll da bematech a BEMAFI32 q possui uma biblioteca para comunicação. Quando uso a biblioteca ele carrega a dll mas manualmante n! sendo que meu codigo esta identico o da biblioteca! preciso fazer manual porq tenho que utilizar a DP20 de cheque e pra ela nao tem jar.
minha classe esta assim:
[code]public class Bematech {
public Bematech()
{
}
public static native int AlteraSimboloMoeda(String s);
public static native int AbreCupom(String s);
static
{
System.loadLibrary(“BEMAFI32”);
}
}
[/code]
nao coloquei todo o codigo porq sao apenas mais conteudo! se alguem souber me ajudar agradeceria bastante!
[quote=thiagocifani]
[color=red]Exception in thread “main” java.lang.UnsatisfiedLinkError: teste2.bematech.Bematech.AberturaDoDia(Ljava/lang/String;Ljava/lang/String;)I
at teste2.bematech.Bematech.AberturaDoDia(Native Method)
at teste2.Main.main(Main.java:19)
Java Result: 1[/color][/quote]
Acredito que é porque essa biblioteca faz referência a outra biblioteca (.dll). Acredito que tem uma outra dll aí junto com os arquivos que vc baixou, se não me engano é USBX_alguma_coisa.dll. Minha máquina aqui tá no conserto, quando ela chegar te falarei com melhor precisão qual é a biblioteca.
Eu tive esse problema também, aí só adicionei essa outra biblioteca (.dll) e parou de dar o erro.
Pelo jeito vc também está usando JNI, uma dica : Utiliza o JNA. É bem mais fácil de implementar.
cara, na verdade preciso implementar para a MP20 que eh uma impressora de cheque, mas ai to testando o acesso primeiro na que funciona que é a fI! vc poderia me ajudar a implementar um acesso a mp20?
Lembrando que o JNA carrega a DLL em 2 diretórios padrão, o System32 e o diretório do seu projeto! É preferível utilizar a segunda opção, assim vc nem precisa ficar indo no cliente copiar as DLL’s para a pasta do WINDOWS!
Quando for compilar seu projeto coloque as DLL’s na mesma pasta onde ficará o seu .jar!