Aplicação JavaFx fecha sozinha

10 respostas Resolvido
javafxjavaprogramação
G

Pessoal,

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.

Como a DLL é 32bits tive que usar uma JVM de 32bits também, e estou lendo a DLL com o JNA.

Alguém já passou por algo parecido ? ou tem alguma sugestão de algo para contornar esse erro ?

Observação: tem hora que a aplicação funciona, outras horas fecha do nada, porem a maioria das vezes a aplicação fecha.

10 Respostas

D

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

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

Entendo, fiz o teste porem simples mente ocorre um crash e nao consegui identificar se é na DLL ou no JNA

J

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

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

Mas…, A JVM, JavaFX e DLL são todos 32 bits ?

D

Pesquise sobre “[telefone removido] exit code”.

G

Sim, pois nao consigo rodar uma DLL 32 bits em uma JVM 64 bits, parece que o JNA não funciona.

G

Já pesquisei sobre o código, porem não encontrei nada que possa me ajudar, apenas descobrir que a JVM crasha.

G
Solucao aceita

RESOLVIDO!!!
O problema era os parâmetros que a DLL estava esperando, estava mandando outro tipo,
passei os valores corretos e o crash parou.

Criado 5 de junho de 2020
Ultima resposta 15 de set. de 2020
Respostas 10
Participantes 3