Bom…
estou tentando fazer meu programa java chamar um programa que eu fiz em c (compilado e contruido .exe),
para isso estou utilizando a classe Runtime, olhem o código:
try {
Process p = Runtime.getRuntime().exec("C:/outport2.exe");
System.out.println(p.exitValue());
} catch (IOException ex) {
Logger.getLogger(pro.class.getName()).log(Level.SEVERE, null, ex);
}
Porem o meu programa que é via console não é aberto… acusando o seguinte erro:
C:\windows\system32\ntvdm.exe erro ao definir ambiente para o apliativo.
e na saída da minha ide:
Exception in thread “main” java.lang.IllegalThreadStateException: process has not exited
at java.lang.ProcessImpl.exitValue(Native Method)
at JavaApplication1.pro.main(pro.java:22)
Java Result: 1
alguma dica?
A mensagem “C:\windows\system32\ntvdm.exe erro ao definir ambiente para o apliativo.” está sendo gerada pelo seu aplicativo, correto?
Pelo que eu entendí, o único problema aí é o IllegalThreadStateException. Neste caso, substitua
p.exitValue()[/code] por [code]p.waitFor()
que deve funcionar.
[]´s
“C:/outport2.exe”
Esse programa é um programa DOS de 16 bits?
É que a mensagem de erro que ele deu é característica desses programas muito antigos. Quando se roda um programa muito antigo desses, versões mais atuais do Windows (como o Vista) não gostam muito de rodar tais programas (principalmente se eles tentam mudar o modo de vídeo para modo texto). E se for um Windows de 64 bits ele não vai rodar programas de 16 bits nem a pau.
Se ele é um programa que tenta controlar as portas seriais ou paralelas do computador diretamente (através daqueles comandos outp ou outpb no Turbo C, por exemplo) pode ser que ele nem mesmo funcione direito mesmo.
Experimente rodar esse programa em uma linha de comando primeiro para ver se ele funciona.
Sim é um programa DOS 16 bits, mas ele ta rodando, essa menssagem aparece qdo eu chamo ele pelo Java…
meu windows é xp … ele roda esses aplicativos