Uso de DLL DarumaFramework

10 respostas
J

E ai pessoal.

Estou tendo problemas na utilização de uma DLL do DarumaFramework. Ocorre que ao executar o projeto pelo NetBeans a biblioteca é carregada sem problemas e eu consigo utilizá-la normalmente, porém, ao tentar rodar executável (.jar) da aplicação ele não funciona. Para carregar a biblioteca utilizo o comando System.loadLibrary(“DarumaFramework”).

Desde já, agradeço.

10 Respostas

J

Você precisa colocar a dll em uma pasta que esteja mapeada na variável de ambiente “path”. Tenta colocar na system32 se for winxp 32 bits ou syswow64 em sistema win7 64. Se der certo posta aí para quem vier neste tópico possa ver a solução

D

Qual o erro que ocorre ou não implementou log ou não está rodando pelo prompt/console?

J

juliocbq, a dll já se encontra no diretório syswow64 e a variável de ambiente “path” está com o valor “C:\Program Files\Java\jre7\bin;C:\Windows\SysWOW64”.
drsmachado, tratei o System.loadLibrary em um bloco try catch e não consegui capturar nenhuma exceção.

D

joparibeiro:
juliocbq, a dll já se encontra no diretório syswow64 e a variável de ambiente “path” está com o valor “C:\Program Files\Java\jre7\bin;C:\Windows\SysWOW64”.
drsmachado, tratei o System.loadLibrary em um bloco try catch e não consegui capturar nenhuma exceção.

Nem capturando um Throwable?

J

Não consigo decifrar o que está acontecendo.
Segue o código do início da classe que faz o carregamento da dll.

public final class ClasseConexao {

    private String porta = "";
    private String velocidade = "";
    private String erro = "";

    static {
        try {

            System.loadLibrary("DarumaFramework");
            //System.out.println("Biblioteca carregada!!!");
            JOptionPane.showMessageDialog(null, "Biblioteca carregada!!!");

        } catch (Exception e) {
            //e.printStackTrace();
            JOptionPane.showMessageDialog(null, e);
        }
    }
D

Camarada, se não me engano, a classe Exception não consegue capturar esse erro. Tem que ser Throwable. Tive o mesmo problema com a dll 64 bits da Bematech. Só não tenho certeza de como fiz para capturar o erro.

J

a dll é 64 bits?
a jvm é 64 bits?

J

É isso ai camarada.

Coloquei Throwable no catch e capturei erro, ele não estava encontrando a dll.

D

Nada como uma experiência ruim.
No meu caso, eu fazia um try para carregar esta de 64, caso não conseguisse, tentava a de 32 (o sistema deveria permitir operar em qualquer plataforma).
Era um experimento, mas só consegui pegar com Throwable.
Ao menos já consegue saber o que está acontecendo.

J

se a dll e a jvm forem de arquiteturas diferentes não carrega mesmo. Dá uma olhada nisso.

Criado 29 de maio de 2012
Ultima resposta 29 de mai. de 2012
Respostas 10
Participantes 3