资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

结束进程树java代码 java 结束进程

在windows 的do窗口中如何用命令行结束进程树?

命令提示符下使用taskkill /im 进程名即可,必要是加/f强制结束

创新互联专注于中大型企业的网站设计、成都网站建设和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户上1000+,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

taskkill /?

TASKKILL [/S system [/U username [/P [password]]]]

{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

描述:

使用该工具按照进程 ID (PID) 或映像名称终止任务。

参数列表:

/S system 指定要连接的远程系统。

/U [domain\]user 指定应该在哪个用户上下文执行这个命令。

/P [password] 为提供的用户上下文指定密码。如果忽略,提示

输入。

/FI filter 应用筛选器以选择一组任务。

允许使用 "*"。例如,映像名称 eq acme*

/PID processid 指定要终止的进程的 PID。

使用 TaskList 取得 PID。

/IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来

指定所有任务或映像名称。

/T 终止指定的进程和由它启用的子进程。

/F 指定强制终止进程。

/? 显示帮助消息。

筛选器:

筛选器名 有效运算符 有效值

----------- --------------- -------------------------

STATUS eq, ne RUNNING |

NOT RESPONDING | UNKNOWN

IMAGENAME eq, ne 映像名称

PID eq, ne, gt, lt, ge, le PID 值

SESSION eq, ne, gt, lt, ge, le 会话编号。

CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为

hh:mm:ss。

hh - 时,

mm - 分,ss - 秒

MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB

USERNAME eq, ne 用户名,格式为 [domain\]user

MODULES eq, ne DLL 名称

SERVICES eq, ne 服务名称

WINDOWTITLE eq, ne 窗口标题

说明

----

1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。

2) 远程进程总是要强行 (/F) 终止。

3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。

例如:

TASKKILL /IM notepad.exe

TASKKILL /PID 1230 /PID 1241 /PID 1253 /T

TASKKILL /F /IM cmd.exe /T

TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"

TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe

TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *

TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

目的:结束java进程。 遇到的问题:现在有两个程序都是调用的java进程,我只想结束其中的一个进程。

Windows 任务管理器太弱了.

Linux 上面可以用 htop 工具查看进程树结构, 如果进入 htop 是平板结构, 按 F5 切换为树形结构.

Windows 上需要下载一个工具叫做 Process Explorer, 里面能以树装形式列举各个进程, 非常方便. (但是我已经好久没用 Win 了不太记得怎么操作也不知道最近版本有没有大更新)

"在java里面去看,哪些程序调用了java" 这个我没试过. (老实说觉得不太可能做到, 操作系统进程管理一般让父进程来管理子进程而不是反过来. 即使 JPS 好像也要受限于此吧.)

如果确定 JPS 可以看到父进程并且拿到 id 的话, 在 Linux shell 下面可以通过

jps | awk '{print "kill", $1}' | sh

来杀掉这些进程. windows 上建议安装 cygwin 工具并把 cygwin_root/bin 目录加入系统 path, 这样在命令行中就可以使用了.

建议不要用 java 或者其它编程语言方式实现, 太麻烦了.

java编程:结束代码进程

首先,Java不允许你控制资源的释放,所有的资源释放都是由JVM来管理的,除非你退出JVM。

当你对资源调用dispose方法时,实际上是将资源的状态置为已废弃,gc会自动来将资源释放掉。

其次,setDefaultCloseOperation()方法是用来设置用户在此窗体上发起 "close" 时默认执行的操作。其中DISPOSE_ON_CLOSE调用任意已注册WindowListener的对象后隐藏并释放该窗体;EXIT_ON_CLOSE则使用System exit方法退出JVM。

dispose()是Window类的方法,并非Container类,它的JDK APIDOC里面这样描述:

释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。

通过随后调用 pack 或 show 重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的 Window 及其子组件的状态与释放 Window 时这些对象的状态一致(不考虑这些操作之间的其他更改)。

注:当 Java 虚拟机 (VM) 中最后的可显示窗口被释放后,虚拟机可能会终止。

也就是说,调用dispose()方法是将对象占用的本地屏幕资源(screen resources)释放,对象本身并没有释放,只是底层的对应点已经释放了,所以仍然是可用的。

当然,调用底层本地屏幕资源已经被释放的对象可能会出现一些错误,有时会报一个SWTException: Widget is disposed...。

如果你的程序已经没有其他线程在运行的话,当所有的窗口都被dispose了之后,JVM也会退出。

你的问题中,只需要将该子窗口dispose掉,并且将对该窗口的引用置为null,不用管它是否还能使用,gc会自动将对象释放的(不会立即释放,对象有它的生命周期,gc会依照自己的算法进行资源回收)。

Java 调 cmd 怎么控制该进程结束

pro.waitFor();

导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。

一般都是用一个线程去做处理运行,另一个线程来做管理,

try {

final Process pro = Runtime.getRuntime().exec("notepad.exe");

new Thread(new Runnable() {

public void run() {

try {

pro.waitFor();

System.out.println(1);

pro.destroy();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

new Thread(new Runnable() {

public void run() {

try {

Thread.sleep(1000);

pro.destroy();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

} catch (IOException e) {

e.printStackTrace();

}

我用的是一个新的线程,一般用主线程去做处理,控制他的关闭。你的另一个其他代码也可以执行。对于cmd这个窗体,就完全没有思路了,java程序是没办法把他关闭掉,应该是dos的权限比java的大吧。


当前文章:结束进程树java代码 java 结束进程
网页网址:http://cdkjz.cn/article/hhhgdg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220