Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Elenco processi attivi

  1. #1

    Elenco processi attivi

    Salbve a tutti,

    con java è possibile creare un piccolo programma che nn fa altro
    che elencare i processi che sono attivi nel momento in cui viene lanciato il programma ?

    Sapete indicarmi quali classi utilizzare ?

    Grazoe
    Omme se nasce e brigante se more
    Ma fino all’ultimo avimma sparà
    E si murimm menate nu sciore
    E na preghiera pè sta libertà

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La cosa non è fattibile utilizzando solo classi Java. Ti devi appoggiare ad un programma (o comando) esterno, dipendente dal sistema operativo.
    Ad esempio, sotto Linux puoi far eseguire un "ps" a Java in modo che vengano elencati tutti i processi attivi.
    Sotto Windows dovresti crearti un programmino che si vada a leggere i processi attivi e li stampi a video e, solo successivamente, far eseguire tale programma a Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    56
    Come dice Lele, ti devi servire del comando della shell, catturarne l'output e parsarlo per recuperare i nomi dei processi. Questo rende il programma non portabile da un sistema operativo ad un altro. Ho scritto un esempio per Windows:

    codice:
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.io.BufferedInputStream;
    import java.io.IOException;
    
    public class ProcessList {
    	public static void main (String[] args) {
    		List lista=new ArrayList();
    		StringBuffer sb=new StringBuffer();
    		try {
    			Process tasklist=Runtime.getRuntime().exec("tasklist");
    			BufferedInputStream out=new BufferedInputStream(tasklist.getInputStream());
    			byte[] buffer=new byte[1000];
    			int numbytes;
    			while((numbytes=out.read(buffer)) != -1 ) {
        				sb.append(new String(buffer, 0, numbytes));
    			}
    		}
    		catch (IOException ioe) {
    			System.out.println("IOException: impossibile accedere alla lista dei processi");
    		}
    		String[] rows=sb.toString().split("\\n");
    		for (int i=3; i<rows.length; i++) {
    			lista.add(rows[i].substring(0, 25));
    		}
    
    		for (Iterator iter=lista.iterator();iter.hasNext();) {
    			System.out.println(iter.next());
    		}
    	}
    }

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.