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
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à
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
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()); } } }