sto lanciando un processo di tipo notepad da java
da un determinato metodo.codice:Process process = Runtime.getRuntime().exec("notepad " + file.getAbsolutePath());
come faccio a capire che ho chiuso il notepad?
(Listener??? ma come???)
thanx
nh
sto lanciando un processo di tipo notepad da java
da un determinato metodo.codice:Process process = Runtime.getRuntime().exec("notepad " + file.getAbsolutePath());
come faccio a capire che ho chiuso il notepad?
(Listener??? ma come???)
thanx
nh
Usando process.waitFor() attendi la terminazione del processo. Il metodo inoltre ti restituisce il codice di uscita dell'applicazione.Originariamente inviato da newhook
sto lanciando un processo di tipo notepad da java
da un determinato metodo.codice:Process process = Runtime.getRuntime().exec("notepad " + file.getAbsolutePath());
come faccio a capire che ho chiuso il notepad?
(Listener??? ma come???)
thanx
nh
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
ottimo...
thanx
nh
un'altra cosa...
se il mio notepad dovesse andare in crash oppure venisse killato dal task manager, c'è un modo capire questa anomalia?
thanx
nh
Di per sé e in modo valido/pulito ... no. waitFor() attende solo la terminazione .... terminazione che può avvenire in qualunque modo (normale, anomala o forzata che sia).Originariamente inviato da newhook
se il mio notepad dovesse andare in crash oppure venisse killato dal task manager, c'è un modo capire questa anomalia?
In un certo senso e per casi specifici si potrebbe usare il exit code fornito da waitFor. Con una prova che ho fatto, notepad che termina normalmente fa ritornare da waitFor un 0. Se killato da Task Manager waitFor ritorna 1.
Su Windows la funzione Win32 TerminateProcess() riceve l'handle del processo e il exit code da far ritornare. Quindi il exit code dipende da chi chiede la terminazione "brutale". E probabilmente Task Manager passa appunto 1.
Ma non ci si può fare affidamento in modo completo (e su un altro S.O.?) anche perché un processo può dare exit code 1 per una terminazione normale volendo però indicare un qualche errore/warning.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok, grazie per la spiegazione...(perfetto per un cambiamento di S.O., da controllare...se ho la possibilità ti faccio sapere cosa succede su sistema diverso...);
thanx
nh
un'altra cosa... il valore di chiusura di un'applicazione (come dicevi tu 0 per notepad) dipende dall'applicazione stessa?
mi spiego meglio:
se lanciassi firefox da runtime e lo killassi, potrebbe darmi un exit code != 0??
Per convenzione un valore di uscita uguale a zero indica un'uscita senza errori. È solo una convenzione, non è detto che tutti i programmi la seguano.Originariamente inviato da newhook
un'altra cosa... il valore di chiusura di un'applicazione (come dicevi tu 0 per notepad) dipende dall'applicazione stessa?
mi spiego meglio:
se lanciassi firefox da runtime e lo killassi, potrebbe darmi un exit code != 0??
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
perfetto, tutto chiaro...
thanx