如何用Java关闭一个进程

如何用Java关闭一个进程,第1张

解决这个问题,要看这个进程是java程序自定义的进程,还是 *** 作系统的进程, *** 作系统的进程,又可以分为windows进程和Linux进程

一、针对 *** 作系统的进程:

1,首先java用户,要具有 *** 作进程的权限

2. 针对windows *** 作系统的进程,比如QQ进程:

String command = "taskkill /f /im QQ.exe"  

Runtime.getRuntime().exec(command)

其中:taskkill 是命令名称,/f /im 是参数,QQ.exe是进程的可执行文件迹祥哗。

3.针对Linux *** 作系统

String command = "kill /f /im QQ.exe"  

Runtime.getRuntime().exec(command)

二、在Java程序中自定义的进程

思路:在线程中设置一个标志变量,当这个变量的值在外界被改变的时候,有机会结束运行的线程

public class T {

public static void main(String[] args) {

// 启动线程

MyThread thread = new MyThread()

new Thread(thread).start()

// 你的其它的工作,此时线程在运行中

 姿行 // 你不想让线程干活了,停掉它

// 注意,这只是一宴圆个标志,具体线程何时停,并不能精确控制

thread.allDone = true

}

class MyThread implements Runnable {

boolean volatile allDone = false

public void run() {

   // 每次循环都检测标志

   // 如果设置停止标志时已经在循环里

   // 则最长需要等待一个循环的时间才能终止

   while (!allDone) {

   // 循环里的工作

   }

}

}

tasklist命令找到该程序的进程,taskkill杀旁胡迅掉该进程。

tomcat的启动、结束bat都是调用org.apache.catalina.startup.Bootstrap这个类实现的,startup.bat最终会执行Bootstrap.java里的

public void start() throws Exception {    

    if( catalinaDaemon==null ) init()

    

    Method method = catalinaDaemon.getClass().getMethod("start", 运此(Class [] )null)    

    method.invoke(catalinaDaemon, (Object [])null)    

}

shutdown.bat最终会执行Bootstrap里的

public void stopServer() throws Exception {

    Method method = catalinaDaemon.getClass().getMethod("stopServer", (Class []) null)    

    method.invoke(catalinaDaemon, (Object []) null)    

}

你也可以这样写一个类来控做圆制程序的启动、终止,bat就调用对应的方法。

java运或衫携行出现死循环时,在dos命令行界面下,可以直接使用ctrl+c的组合键来停止程序,ctrl+c组合键在dos命令行界面中可以不用等待程序衫伏正常运行结束,直接终止程序;还可以直接点击dos命令行界面窗口的关闭按钮来结束程序。在开发工具eclipse或者Myeclipse中,可以直接点击运行控制台中的红色按钮来塌弊结束程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12436067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存