Ir para conteúdo
  • Cadastre-se

dev botao

Acbr para o Java alguem pode me passar os passos iniciais ?


Ver Solução Respondido por Rafael Batiati,
  • Este tópico foi criado há 4301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá pessoal desenvolvo uma aplicação comercial em java, no momento estou estou desenvolvendo a nota fiscal

eletrônica, estou quase no fim do arquivo txt pois não sabia dessa dll que posso utilizar o java se alguem me puder

me passar os passos iniciais para eu tentar fazer pela dll, ou vou terminar o modo via TXT, mas tenho muita duvida

sobre os comandos e gostaria saber tambem se alguem tem o modelo do TXT explicando campo a campo

ou comando a comando pois os que encontrei ja são antigos agradeço desde já T+.

  • 1 ano depois...
Postado

E ai Amigo vc consegui alguma coisa? também estou com problemas, precisava de um tutorial, esta acontecendo alguns erros aqui, mas não encontro solução em lugar algum, imagino que uma simples dica de como começar, posso resolver vários problemas.

Postado

Alô galera,

 

O NFe não está implementado ainda no ACBrFramework, temos planos para fazê-lo em breve, mas só para .Net pois infelizmente não temos equipe para manter o projeto em java.

De toda forma, o jACBrFramework vem sendo mantido apenas com o ECF parcialmente implementado, e com um projetinho de exemplo.

 

Dê uma olhada nisso:

 

 

Saiba mais sobre o ACBrFramework:

http://acbrframework.sourceforge.net

 

Como baixar o código fonte:

http://acbrframework...s/codigo-fonte/

 

Download compilado:

http://sourceforge.n...ramework/files/

 

Abs!

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Postado

Obrigado Rafael Batiati,

 

Eu ja fiz esse dowloads para minha máquina, Alterei o load da Classe ACBrECF.java

 

 

static
    {
        //Carrega a biblioteca de chamadas nativas JNI
        //System.loadLibrary("ACBrFramework_JNI");
                
                try {
                    System.loadLibrary("ACBrFramework64");
                } catch (UnsatisfiedLinkError e) {
                    System.err.println("Erro ao carregar dll do jACBrFramework.\n" + e);
                    throw new UnsatisfiedLinkError("Erro ao carregar dll do jACBrFramework!");
                }
    }
 
Sem problemas aqui tudo bem, mas esta dando um erro, quero saber se alguém pode me ajudar:
 
jACBr.ACBrECF.create()V
 
Se alguém puder me ajudar, desde já agradeço.
 
att
Postado

Conversando com um amigo meu, grande programador em Java, o Dadonas, nos achamos muito estranho o código do método construtor, modificamos, e  o erro parou.

 

public ACBrECF() throws ACBrException {
//this.create <= isso é coisa do delphi
            super();

    

Postado

Bom dia Wagner!

 

Você simplesmente desativou o Interop, aí o erro parou de acontecer, assim como todo o resto parou de funcionar também !!!

 

O ACBrFramework é uma DLL nativa, e funciona via JNI com o java.

o this.create() que "é coisa de Delphi", na verdade é uma função nativa implementada em C++ chamada via JNI

 

private native void create() throws ACBrException;

 

Essa função, de fato é coisa de Delphi, pois é nela que o componente é criado e os handlers atribuídos.

 

(...)

 

eu acho que o seu problema pode estar no System.loadLibrary("ACBrFramework64");

Você precisa estar usando uma JRE de 64bits e usando a DLL compilada em 64bits pra isso funcionar. Aí vc precisa ver se sua DLL nativa e o JNI foi compilado corretamente. Não distribuímos versões compiladas do JNI em 64bits, só em 32bits mesmo.

 

O mais fácil é vc manter o ACBrFramework32 e executar com uma JRE de 32bits.

 

Abs!

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Postado

Ola, muito obrigado pelas dicas. 

 

Mas infelizmente não deu certo, instalei o JRE para 32bits, e configurei na aplicação. Mas o erro continua:

 

...\ACBrFramework32.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

 

O que mas eu poderia fazer para resolver isso?

Postado

...\ACBrFramework32.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

 

Isso significa que você ainda está executando no JRE de 64 bits.

 

Nesse caso não basta apenas instalar a JRE 32bits, você precisa na sua IDE (NetBeans, Eclipse ou outro) informar o JRE de 32bits que você quer usar.

Trocando em miúdos, você precisa usar o javac e java.exe do JRE correto, pois um aplicativo de 64bits não consegue carregar módulos de 32bits.

 

Abs

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Postado

Oi,

Não sei ao certo, não uso o NetBeans, mas a JRE alí é a correta, só não sei se ele está usando essa só como classpath ou se pra executar o aplicativo também. Dá uma googlada sobre usar no NetBeans JRE 32bits em máquinas 64, vai que tem algum macete...

 

(...)

 

Compilar em 64 não tem mistério não, vc só precisa compilar o ACBrFramework em Lazarus usando o projeto ACBrFramework64.lpr e compilar o projeto do jACBrFramework_JNI em 64 bits também. Ele é feito em Visual C++.

 

Mas como o Rafael Dias falou, na prática não é recomendado, pois pra fazer a leitura da MFD é necessária as DLLs dos equipamentos que nem sempre são distribuídas em 64bits.

 

Abs

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Postado

Em primeiro lugar, obrigado pela atenção, estou precisando muito de ajuda com isso.

 

Bom, eu configurei o path do windows,  

post-4857-0-64938000-1360946394.jpg

 

quando limpo e contruo no Netbeans, aparece a seguinte mensagem no compilador:

 

...

 

To run this application from the command line without Ant, try:
C:\Program Files (x86)\Java\jdk1.6.0_39/bin/java -jar "G:\Desenvolvimento\Codigos\Java\NetBeansProject\Projeto\dist\Projeto.jar"
 
Agora esta ocorrendo o primeiro erro:
 
jACBr.ACBrECF.create()V
 
att.
  • Solution
Postado

Ok, que bom, a JRE parece estar ok agora.

 

Vamos ao outro problema.

Pelo que parece você está usando a jACBr, uma versão ***muito antiga*** do nosso projeto, que agora se chama jACBrFramework.

 

O JNI é muito temperamental com essas coisas, pois se sua ACBrECF está no package jACBr ele procura o método jACBr_ACBrECF_create pra executar. Mas em nossa nova versão, o package foi renomeado para jACBrFramework, e consequentemente no JNI existe agora um método também chamado jACBrFramework_ACBrECF_create.

 

Ou seja, ou você usa o jACBr com a ACBr32.dll e a ACBr_JNI.dll ou você migra para o jACBrFramework e usa a ACBrFramework32.dll e o ACBrFramework_JNI.dll. Pelo que eu vi no seu projeto, você está usando as DLLs novas e o jar antigo.

 

Abs

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Postado

Muito obrigado! deu certo. 

 

Coloquei o jACBrFramework.jar

e as DLL.

 

Graças a Deus, funcionou.

 

Acontece alguns erros aqui mas agora é em relação ao Simulador de ECF.

 

Valeu mesmo Rafael Batiati.

  • Curtir 1
  • Este tópico foi criado há 4301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.