Estou com o seguinte cenário, tenho uma aplicação JavaFx que tem o objetivo de receber uns parâmetros chamar uma DLL (32bits), executar algumas rotinas e gerar um outro arquivo.
O meu problema é o seguinte, apos eu executar os métodos
da DLL a aplicação fecha sozinha sem gerar exceptions e nada simplesmente fecha, tudo que conseguir identificar é um código de retorno.
Nunca fiz projetos com JNA, mas eu verificaria quais os métodos da dll que fazem a aplicação fechar.
Uma vez eu fiz um aplicativo num computador com java 7, então fui testar num outro computador com java 6, a aplicação fechava sozinha. Talvez seja versão do java incompatível com JNA.
J
j-menezes
Tem que analisar o Nativo pra saber ao certo o que esta causando o fechamento da aplicação.
Tambem tenta colocar o nativo dentro de um
Platform.runLater(()->{...});
Ou ainda dentro de uma Thread em conjunto com Task
G
Gustavo_Daniel
Entendo, fiz o teste porem simples mente ocorre um crash e nao consegui identificar se é na DLL ou no JNA
J
j-menezes
Isso em termos de manutenção é o pior dos mundos.
Mas isso que vc quer nativo não tem algo parecido no Java versão nova ?
G
Gustavo_Daniel
O problema que tenho que manter essa arquitetura, creio eu se a DLL fosse 64 bits eu não teria que usar uma JVM 32 bits, e bem provável que não teria esse erro, porem infelizmente tenho que roda tudo nessa arquitetura que citei.
O problema que tem horas que funciona, e outras não, então nao consigo saber o certo o que esta causando esse fechamento da aplicação.
J
j-menezes
Mas…, A JVM, JavaFX e DLL são todos 32 bits ?
D
DlEGO
Pesquise sobre “[telefone removido] exit code”.
G
Gustavo_Daniel
Sim, pois nao consigo rodar uma DLL 32 bits em uma JVM 64 bits, parece que o JNA não funciona.
G
Gustavo_Daniel
Já pesquisei sobre o código, porem não encontrei nada que possa me ajudar, apenas descobrir que a JVM crasha.
G
Solucao aceita
Gustavo_Daniel1 like
RESOLVIDO!!!
O problema era os parâmetros que a DLL estava esperando, estava mandando outro tipo,
passei os valores corretos e o crash parou.