PDA

View Full Version : [JAVA] Lanciare programma in C


Limmone
06-05-2010, 16:48
Ciao a tutti, oggi tanto per cambiare ho un altro problema in java.
Ho un programma scritto in C chiamato EmptyShp.exe il quale una volta lanciato crea 3 file.
Se lo lancio direttamente cliccandoci sopra funziona perfettamente. Io vorrei farlo lanciare in automatico una volta che venga premuto un bottone, così all'interno dell'listener del pulsante ho inserito questa riga di codice:
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("C:\\EmptyShp.exe");
Purtroppo non funziona...non lancia eccezioni ne niente.Ho provato con questo codice
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("C:\\Programmi\\Mozilla Firefox\\firefox.exe");
e firefox viene lanciato perfettamente.
Ho fatto un uteriore prova...ho creato un file bat, chiamato avvio.bat il quale contiene questo codice:
echo ciao >> C:\pippo.txt
EmptyShp.exe
echo ciao >> C:\pippo2.txt
lanciandolo da java il risultato è impressionante, infatti vengono creati alla perfezione i 2 file pippo.txt e pippo2.txt ma il programma EmptyShp.exe non viene lanciato(oppure se viene lanciato non da nessun risultato, infatti i file che deve creare non vengono creati)
Qualcuno sa aiutarmi??
Grazie in anticipo

fero86
06-05-2010, 17:06
vediamo il codice di questo EmptyShp, é molto lungo?
casomai all'inizio di EmptyShp.exe prova a mettere una chiamata DebugBreak, cosi se (come penso) il programma viene lanciato ti si avvia il debugger di default e col debug puoi vedere perché non crea i files.

fero86
06-05-2010, 17:07
qua c'é la documentazione di DebugBreak: http://msdn.microsoft.com/en-us/library/ms679297(VS.85).aspx

Limmone
08-05-2010, 14:49
grazie della risposta, però non ho il codice del file exe visto che non l'ho creato io.
Ancora non sono riuscito a risolvere il problema, però adesso stò provando utilizzando le JNI...vediamo cosa viene fuori.

se qualcuno ha altri suggerimenti da darmi non esitate a scriverli :D

^TiGeRShArK^
09-05-2010, 14:16
quasi semplicemente devi gestire l'output di quel programma altrimenti il tuo codice si blocca dato che non c'è nessuno che gestisce l'output su console.
Firefox funziona perfettamente perchè quando lo lanci non scrive nulla sulla console.