Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Kill programma esterno

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137

    Kill programma esterno

    PROBLEMA:

    ho creato un'interfaccia per lanciare un programma dos.
    Dovrei trovare un modo per interrompere l'esecuzione del programma.
    Il problema che dovrei interrompere prima i Thread in esecuzione visto che usato la classe BufferReader (con relativa funzione readline()) per acquisire i valori sul prompt e poi killare l'applicazione esterna lanciata.

    Come fare? Avete suggerimanti?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Kill programma esterno

    Originariamente inviato da Macgiglio
    ho creato un'interfaccia per lanciare un programma dos.
    Dovrei trovare un modo per interrompere l'esecuzione del programma.
    Se l'hai lanciato tu dalla applicazione Java, quindi puoi avere il Process (fornito da exec() di Runtime o da ProcessBuilder) e su quello puoi invocare destroy() (nota: è un kill "brutale").
    Di più non puoi ... non in Java puro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    Non funziona.....cmq grazie lo stesso

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Macgiglio
    Non funziona
    Non funziona ..... cosa??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    non killa...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Macgiglio
    non killa...
    Immagino .... hai lanciato qualcosa del tipo "cmd.exe /c start tuoprogramma.exe"??? Chiaramente killa il cmd.exe ... non tuoprogramma.exe
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    Dovrei postarti tutto il odice per farti capire....Mi saresti di grande aiuto che mi riesci ad indirizzare su qualche sito per vedere qualche esempio su sta cosa....oppure se riesci a postarmi un po' di codice....Ti ringarzio

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Macgiglio
    Dovrei postarti tutto il odice per farti capire....Mi saresti di grande aiuto che mi riesci ad indirizzare su qualche sito per vedere qualche esempio su sta cosa....oppure se riesci a postarmi un po' di codice....Ti ringarzio
    Basta che dici il comando completo che esegui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    Process m = Runtime.getRuntime().exec("mioprogramma.exe "+name);
    In un file ho fatto questo creandomi poi una funzione che implementa la classe thread che lavora sul bufferread per acquisire le varie linee del prompt dos.
    Questo funziona...

    in un altro file ho scritto qualcosa del genere associato ad un pulsante
    jButton2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    try{
    Process p= Runtime.getRuntime().exec("mioprogramma.exe "+name);
    p.destroy();
    } catch (IOException e) {
    System.out.println("EXCEPTION: ");
    e.printStackTrace();
    System.exit(-1);
    }

    Dove sbaglio?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Macgiglio
    Process p= Runtime.getRuntime().exec("mioprogramma.exe "+name);
    p.destroy();
    Beh, ma così lanci una istanza del tuo programma ma lo termini immediatamente ..... che ti serve?

    Se vuoi che il pulsante faccia terminare un Process avviato tempo prima (sempre nel contesto della stessa esecuzione della tua applicazione java), devi tenere il reference al Process da qualche parte e poi nell'evento invocare solo il destroy.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.