1.java中关闭某个程序的清理其进a清进程 cmd /c taskkill /pid 具体的某个pid
2.在windows使用java-jar的方式运行jar包如何在杀死进程的
3.javaè·åè¿ç¨å称
java中关闭某个程序的进程 cmd /c taskkill /pid 具体的某个pid
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
public class Command {
private java.lang.Process p;
private InputStream is;
private OutputStream os;
private BufferedWriter bw;
private BufferedReader br;
private ProcessBuilder pb;
private InputStream stdErr;
public Command() {
}
//获取Process的输入,输出流
public void setCmd(String cmd) {
try {
p = Runtime.getRuntime().exec(cmd);
os = p.getOutputStream();
is = p.getInputStream();
stdErr = p.getErrorStream();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
//向Process输出命令
public void writeCmd(String cmd) {
try {
bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write(cmd);
bw.newLine();
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//读出Process执行的程源结果
public String readCmd() {
StringBuffer sb = new StringBuffer();
br = new BufferedReader(new InputStreamReader(is));
String buffer = null;
try {
while ((buffer = br.readLine()) != null) {
sb.append(buffer + "\n");
}
System.out.println(p.waitFor());
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
//将命令一股脑塞入list中
public LinkedList<String> doCmd(LinkedList<String> lists) {
LinkedList<String> list = new LinkedList<String>();
for (String s : lists) {
writeCmd(s);
list.add(readCmd());
}
return list;
}
public static void main(String[] args) {
Command cmd = new Command();
cmd.setCmd("cmd");
cmd.writeCmd("TASKKILL /PID ");
System.out.println(cmd.readCmd());
//LinkedList<String> list = new LinkedList<String>();
//list.add("dir/b");
//list = cmd.doCmd(list);
// for(String s:list){
// System.out.print(s);
// }
}
}
在windows使用java-jar的方式运行jar包如何在杀死进程的
在 Windows 环境下使用 java -jar 命令运行 JAR 包时,会开启一个 CMD 窗口作为承载进程。进程若直接终止 Java 进程,源码CMD 窗口并不会随之关闭。清理其进a清微商网页源码要实现同时关闭 Java 进程与 CMD 窗口的程源30秒源码空间目标,可采取以下策略:编写批处理文件、进程利用第三方工具或在 Java 代码中进行控制。源码
编写批处理文件时,清理其进a清可先启动 Java 应用程序,程源并记录 CMD 窗口 PID,进程通过 tasklist 和 findstr 查找具有指定标题的源码 CMD 窗口 PID,最后使用 taskkill 命令来关闭 Java 进程与 CMD 窗口。清理其进a清mina处理模块源码示例脚本如下:启动程序并设置窗口标题,程源使用 tasklist 和 findstr 查找窗口 PID,进程存储为 cmdPid 变量,使用 taskkill 关闭 Java 进程与 CMD 窗口。as 小部件 源码
使用第三方工具,如 NirCmd,提供了更加强大和灵活的 Windows 操作功能。通过 NirCmd 的kafka c 源码分析 win close 命令,指定关闭具有特定标题的 CMD 窗口。首先需下载并安装 NirCmd,然后编写脚本,使用 nircmd win close title "JavaApp" 来关闭具有指定标题的 CMD 窗口。
在 Java 代码中控制进程,通过 Runtime.getRuntime().exec 启动进程,添加额外逻辑在需要时关闭相关进程和窗口。示例中,Java 代码启动 CMD 窗口运行 JAR 文件,通过 process.destroy() 方法关闭 CMD 窗口及其子进程。
总结:根据需求选择适当方案,批处理文件和第三方工具适用于自动化和脚本化场景,Java 代码控制适用于在 Java 程序中直接管理进程的场景。正确实施上述任一方案,皆能有效解决关闭 Java 进程时同时关闭 CMD 窗口的问题。
javaè·åè¿ç¨å称
代ç ï¼
package com.test;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
public class Target {
public static void main(String[] args) throws InterruptedException { System.out.println(getProcessID());
while(true) {
Thread.sleep();
}
}
public static final int getProcessID() {
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
System.out.println(runtimeMXBean.getName());
return Integer.valueOf(runtimeMXBean.getName().split("@")[0]) .intValue();
}
}
è¿è¡ç»æï¼@PC-VRPL
å½åè¿ç¨ID为ã
ManagementFactoryæ¯ä¸ä¸ªå¨è¿è¡æ¶ç®¡çåçæ§Java VMçå·¥åç±»ï¼å®è½æä¾å¾å¤ç®¡çVMçéææ¥å£ï¼æ¯å¦RuntimeMXBeanï¼
RuntimeMXBeanæ¯Javaèææºçè¿è¡æ¶ç®¡çæ¥å£.