Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    [JAVA - Chiusura di un processo]

    sto lanciando un processo di tipo notepad da java
    codice:
    Process process = Runtime.getRuntime().exec("notepad " + file.getAbsolutePath());
    da un determinato metodo.

    come faccio a capire che ho chiuso il notepad?

    (Listener??? ma come???)

    thanx
    nh

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [JAVA - Chiusura di un processo]

    Originariamente inviato da newhook
    sto lanciando un processo di tipo notepad da java
    codice:
    Process process = Runtime.getRuntime().exec("notepad " + file.getAbsolutePath());
    da un determinato metodo.

    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.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    ottimo...
    thanx
    nh

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    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

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    se il mio notepad dovesse andare in crash oppure venisse killato dal task manager, c'è un modo capire questa anomalia?
    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).

    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    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??

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    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??
    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.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    perfetto, tutto chiaro...
    thanx

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.