javadestroy
⑴ java怎么杀掉java进程
java中有调用外部程序的类,Runtime.getRuntime().exec("./**.exe");此函数返回的是一个Process 对象,该对象在创建后,可以对它进行 destroy () 杀掉子进程、 waitFor () 导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。 如下例子可以杀掉已经打开的文本进程:
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassTest
{
publicstaticvoidmain(String[]args)
{
try
{
String[]cmd=
{"notepad.exe"};
Processproc=Runtime.getRuntime().exec(cmd);//开启文本
BufferedReaderin=newBufferedReader(newInputStreamReader(proc
.getInputStream()));
Stringstring_Temp=in.readLine();
while(string_Temp!=null)
{
System.out.println(string_Temp);
if(string_Temp.indexOf("notepad.exe")!=-1)
Runtime.getRuntime().exec("Taskkill/IMnotepad.exe");
string_Temp=in.readLine();
}
}
catch(Exceptione)
{
//结束进程
}
}
结果如下:
⑵ java 怎么取外部程序运行后的返回值
JAVA 中 process 类的使用
Process是一个抽象类 封装了一个进程
创建 process
Process p = Runtime.getRuntime().exec(cmd); cmd 是字符串类型 也可以是字符串类型的数组 内容就是 命令行
Process p =ProcessBuilder.start();
Process 类提供了子进程的输入流,子进程的输出流子进程的输入流,等待进程完成,检查进程的退出状态以及销毁进程的方法;
创建的子进程没有自己的控制台或终端,其所有的io操作都是通过(输入流、输出流、错误流)重定向到父进程中。
destroy()
杀掉子进程。
exitValue()
返回子进程的出口值。
InputStream getErrorStream()
获得子进程的错误流。
InputStream getInputStream()
获得子进程的输入流。
OutputStream getOutputStream()
获得子进程的输出流。
waitFor()
导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。
-------分割线,以上来自网络-------
其中的exitValue()函数返回值就是你需要的东西。按照你的示例,return 12345,取得的值不一定等于12345,因为每个不同的shell对于程序退出的返回值是有自己的定义的,不一定是把程序return的值直接返回。可以查看各类shell的编程帮助。