如何让Windows使用Java运行应用程序列表?我得到了进程列表。
我建议也使用qprocess实用程序,然后,如果您需要有关进程的更多信息,请使用wmic。
例如:
String line; try { Process proc = Runtime.getRuntime().exec("wmic.exe"); BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream())); OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream()); oStream .write("process where name='explorer.exe'"); oStream .flush(); oStream .close(); while ((line = input.readLine()) != null) { System.out.println(line); } input.close(); } catch (IOException ioe) { ioe.printStackTrace(); }
您可以从Java运行一些命令行util来收集进程信息。 例如:
Process process = Runtime.getRuntime().exec("qprocess"); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
然后你只是阅读它的输出并解析它。 qprocess
是一个标准的Windows XP工具。 在其他版本的Windows中,您可能需要其他一些实用程序。
你可以搜索相似的答案。 一个在这里 。 看看它是否符合你的需求。 否则,网络上也有很多解决方案。 搜索谷歌他们
package com.vipul; import java.applet.Applet; import java.awt.Checkbox; import java.awt.Choice; import java.awt.Font; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class BatchExecuteService extends Applet { public Choice choice; public void init() { setFont(new Font("Helvetica", Font.BOLD, 36)); choice = new Choice(); } public static void main(String[] args) { BatchExecuteService batchExecuteService = new BatchExecuteService(); batchExecuteService.run(); } List<String> processList = new ArrayList<String>(); public void run() { try { Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("D:\\server.bat"); process.getOutputStream().close(); InputStream inputStream = process.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader( inputStream); BufferedReader bufferedrReader = new BufferedReader( inputstreamreader); BufferedReader bufferedrReader1 = new BufferedReader( inputstreamreader); String strLine = ""; String x[]=new String[100]; int i=0; int t=0; while ((strLine = bufferedrReader.readLine()) != null) { // System.out.println(strLine); String[] a=strLine.split(","); x[i++]=a[0]; } // System.out.println("Length : "+i); for(int j=2;j<i;j++) { System.out.println(x[j]); } } catch (IOException ioException) { ioException.printStackTrace(); } } }
你可以像创建批处理文件一样
TASKLIST / v / FI“STATUS eq running”/ FO“CSV”/ FI“Username eq LHPL002 \ soft”/ FI“MEMUSAGE gt 10000”/ FI“Windowtitle ne N / A”/ NH