Olá a todos.
Tenho um executável (ghmm9.exe) que executa com um nome de arquivo passado por linha de comando (estou usando t1.ghmm). A saída dele é a escrita de alguns arquivos.
Executei pelo terminal e tudo ok.
Então, resolvi escutar pelo Java.
Pus o meu .class junto com ghmm9.exe e t1.ghmm;
No main(String0…*:args) somente escrevi
try {
Runtime.getRuntime().exec(“ghmm9.exe t1.ghmm”);
} catch(Exception e) {
e.printStackTrace();
}
Deu tudo certo.
Entretanto, esse Runtime.getRuntime()… vai estar em um código de aplicação gráfica. É fato, que enquanto estiver rodando normalmente o código gráfico a JVM não encerra.
Então, quando chamei o evento de um botão o processo do ghmm9.exe foi chamado. Ela abriu os arquivos, escreveu parcialmente nos arquivos e terminou, mas, não completou a escrita nos arquivos. Somente quando encerrei a JVM (por ctrl + c) a escrita foi completa.
Qual o problema?
Em
http://www.geocities.com/caiobmartins/ghmm.zip
Estou disponibilizando um .zip com:
- ghmm9.c (compila com gcc e borland)
-s.dat (arquivo binário de dados que o programa usa)
-t1.ghmm (arquivo de entrada; por linha de comando)
Obrigado a todos