请问在java在如何关闭java自己启动的程序呢?

请问在java在如何关闭java自己启动的程序呢?,第1张

分类: 电脑/网络 >>软件

问题描述:

请问在java在如何关闭java自己启动的程序呢?

解析:

我详细说一下吧

java程序启动之后,JVM(java虚拟机)会实例化一个Runtime类,这是一个运行时类实例,包含这个java程序运行的所有信息,一个程序会实例化一个Runtime类且只能实例化一个Runtime类。我们可以通过这个Runtime类实例 *** 作程序的运行。它的exit(int status)方法会终止程序的运行。例:

Runtime.getRuntime().exit(0)

其中参数status表示状态,0表示正常退出,非0表示异常退出。非0参数有什么用呢?

addShutdownHook(Thread hook)方法可以将一个Thread可程序的关闭hook(挂/联系)起来,程序退出前,会执行这个方法,这样我们可以根据退出状态作相应的善携穗后 *** 作。

另外,System.exit(int status)也是调用这个Runtime类实例的退出方法来间接实现程序的退出的。

再加一点,Runtime类可以创建子进程,如下:

Process p=Runtime.getRuntime().exec("notepad")

这腔隐游个语句将会创建一个记事本程序(它是Runtime类创建的伍销子进程)

p.destroy()

这个语句终止刚才创建的子进程。

电脑JAVA更新程序永久关闭的方法如下

首先打开计算机的控制面板,“开始”-“控制面板”,如下图所示:

进入控制面板之轿郑毕后,选择“Java”并进入,如下图所示:

进入“Java控制面板”之后,点击更新,然后取消勾选“自动检查更新”,在接下来d出的对话框中选择“不检查丛物”。如下图所示:

然后闭芹再点击“高级”,并在应用程序一栏中选择“从不安装”,如下图所示:

经过以上 *** 作之后,Java更新程序即可永久关闭了。

解决这个问题,要看这个进程是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) {

   // 循环里的工作

   }

}

}


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

原文地址: http://outofmemory.cn/yw/12413370.html

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

发表评论

登录后才能评论

评论列表(0条)

保存