Olá pessoal … preciso de ajuda de alguem por favor …!!!
Estou tentando rodar um exemplo bem tradicional no netbeans para comunicar com o emulador ecf bematech … já quebrei a cabeça pra descubrir o q estou fazendo de errado e nada … uffff …
Já coloquei todas as .dlls no diretorio C:\Windows\System32 :
-> BemaFI32.dll
-> BemaFI32.ini
-> BemaMFD.dll
-> BemaMFD2.dll
-> DAO2535.tlb
-> DAO350.dll
-> MSJET32.dll
-> AX6R32.DLL
coloquei a variavel EmulMFD=1 no arquivo .ini
baixei o emularo de portas VSPE
e estou tentando rodar o seguinte exemplo :
import bemajava.*;
public class teste {
public static void main(String[] args) {
int iRetorno;
Primeiramente, coloque o seu código entre as tags code.
Qual SO você usa? Se for Win7 64 bits tem que botar os arquivos dentro da pasta C:\Windows\SysWOW64. Só que acho que não é muito interessante porque, segundo o suporte da Bematech, não tem nada homologado em cima do 64 bits.
Pode ser algum anti-vírus que bloqueia o acesso à DLL também, segundo o suporte da Bematech.
package testeecf;
/**
*
* @author Danilo
*/
import bemajava.*;
public class teste {
public static void main(String[] args) {
int iRetorno;
iRetorno = Bematech.LeituraX();
System.out.println("Retorno = " + iRetorno);
}
}
André … muito obrigado por ter respondido !!!
Olha só … eu uso o Vista no meu laptop … eu até pensei q estava com o Firewall desativado … veriquei estava ativo, desativei só q o retorno da minha variavel ainda esta me retornando 0. Será q por ser Vista o SO há alguma configuração q tem q ser feito para q a comunicação com emulador seja efetivada ?
Acho que não. Eu usava com Windows 7 64 bits e sempre bugava… Quando eu ia falar com o suporte da Bematech eles sempre falavam que era melhor colocar num 32 bits porque no 64 não foi homologado.
Como está a primeira seção do seu Bemafi.ini? Seu SO é 32 ou 64 bits?
Aliás, será que não faltou você carregar a DLL? Tenta colocar um System.loadLibrary com a DLL.
import bemajava.*;
public class teste {
static{
System.loadLibrary ("BemaFI32.dll");
}
public static void main(String[] args) {
int iRetorno;
iRetorno = Bematech.LeituraX();
System.out.println("Retorno = " + iRetorno);
}
}
e já me apresentou a seguinte mensagem de erro :
java.lang.UnsatisfiedLinkError: no BemaFI32.dll in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at testeecf.teste.<clinit>(teste.java:15)
Exception in thread "main"
Exception in thread "main" Java Result: 1
será q tem a ver com a confirguração das variaveis de ambiente ? desulpa a ignorancia mas … se for … como faço para configurar essas variaveis de ambiente ?
olá pessoal !!!
após tanto quebrar a cabeça pra resolver isso … mudei de emulador de porta serial, estou usando o Virtual Serial Port Driver … e rodei o minha classe agora deu o seguinte erro :
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Windows\System32\BemaFI32.dll: Acesso inválido ao local de memória
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at bemajava.Bematech.<clinit>(Bematech.java:338)
at testeecf.teste.main(teste.java:26)
Java Result: 1
Alguém já passou pela mesma experiencia ?
Por favor se alguém já viu isso me dê um help, please !!!