给你个例子,通过调用windows的命令得到当前系统内的进程列表,然后你根据需要自己过滤出想要的进程ID(字符串分析)
try {
Process p = RuntimegetRuntime()exec("cmd /c tasklist");
InputStream is = pgetInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
byte[] buf = new byte[4096];
while(isread(buf)>0){
//我在这里只是简单输出结果,你可以对结果进行你要的处理。
Systemoutprintln(new String(buf));
}
bisclose();
isclose();
} catch (IOException e) {
eprintStackTrace();
} 答案补充 java是运行在其JVM中的,JVM是 *** 作系统的一个进程,和 *** 作系统中的其他进程是一样的
对于你的补充提问,建议你使用java的jni来解决java通过jni可以调用C来完成一些底层的事情
select DISTINCT t from student t
(
select max(age),tcid from student t group by ttcid
) t1
where ttcid in (t1tcid)
and tage in(t1age);
select
from
student
where
id=(select
max(id)
from
student)
一般数据库表都有id,最后一行的id一般是表中最大的。
所以你就查出最大id
的一行数据,就是最后一行。
如果查第一行
max(id)
改成
min(id)
就可以了
package test;
import javaioBufferedReader;
import javaioFile;
import javaioFileWriter;
import javaioIOException;
import javaioInputStream;
import javaioInputStreamReader;
import javaioPrintWriter;
public class GetPid {
private static final String PNAME = "QQ";
public static void main(String[] args)
throws IOException {
Systemoutprintln("包含关键字 "+PNAME+" 的进程有:");
Systemoutprintln();
String path = SystemgetProperty("userdir");
final File createFileName = new File(path + "\\mytempscriptvbe");
if(createFileNameexists()createFileNamedelete():createFileNamecreateNewFile()){}
final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,
true), true);
pwprintln("for each ps in getobject(\"winmgmts:\\\\\\root\\cimv2:win32_process\")instances_");
pwprintln("wscriptecho pshandle&vbtab&psname");
pwprintln("next");
pwclose();
final InputStream ii = RuntimegetRuntime()exec(
"cscript " + path + "\\mytempscriptvbe")getInputStream();
final InputStreamReader ir = new InputStreamReader(ii);
final BufferedReader br = new BufferedReader(ir);
String str = null;
String[] ss = null;
while ((str = brreadLine()) != null) {
if (strindexOf(PNAME)>0&&strendsWith("exe")) {
ss = strsplit("\\s");
for(int i=0;i<sslength;i+=2){
Systemoutprintln("");
Systemoutprintln("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);
}
}
}
Systemoutprintln("");
irclose();
iiclose();
brclose();
}
}
运行结果如下
包含关键字 QQ 的进程有:
进程名:QQexe
进程ID:3956
package cnmarkingbean;
public class Teacher
{
private int id;
private String name = null;
private int score1;
private int score2;
private int score3;
private int score4;
public Teacher(int id, String name, int score1, int score2, int score3,
int score4)
{
super();
thisid = id;
thisname = name;
thisscore1 = score1;
thisscore2 = score2;
thisscore3 = score3;
thisscore4 = score4;
}
public int getId()
{
return id;
}
public void setId(int id)
{
thisid = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
thisname = name;
}
public int getScore1()
{
return score1;
}
public void setScore1(int score1)
{
thisscore1 = score1;
}
public int getScore2()
{
return score2;
}
public void setScore2(int score2)
{
thisscore2 = score2;
}
public int getScore3()
{
return score3;
}
public void setScore3(int score3)
{
thisscore3 = score3;
}
public int getScore4()
{
return score4;
}
public void setScore4(int score4)
{
thisscore4 = score4;
}
}
以上就是关于java在windows下如何实现获取进程ID全部的内容,包括:java在windows下如何实现获取进程ID、java mysql数据库语句查询每个班级年龄最大的学生名字、Java 数据库查询后显示只有最后一行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)