import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author hemomo
* @since 2019-7-8
*/
public class ReStartExeUtil {
/**
* 重启EXE
* @author hemomo
* @since 2019-7-9
* @param filepath exe 安装目录绝对路径 如:E:/SERVER
* @param pidName exe名字 如:Invoice
* @param waitingTime 关闭后启动等待时间 ,最好3秒以上
* @return true 启动成功 false 启动失败
*/
public static boolean reStart(String filepath, String pidName,int waitingTime){
BufferedReader reader=null;
try {
Runtime runtime = Runtime.getRuntime();
Process pro = runtime.exec("cmd.exe /c tasklist |find \""+pidName+".exe\"");
reader=new BufferedReader(new InputStreamReader(pro.getInputStream()));
String str=reader.readLine();
if (str != null){
System.out.println(pidName+".exe正在运行,准备重启。。。");
runtime.exec("taskkill /F /IM " + pidName + ".exe");//停止应用
System.out.println("等待"+waitingTime+"后启动"+ pidName + ".exe");
Thread.sleep(waitingTime*1000);
System.out.println("启动"+ pidName + ".exe 。。。");
runtime.exec("cmd /c start "+filepath+"/"+pidName+".exe");//启动应用
pro = runtime.exec("cmd.exe /c tasklist |find \""+pidName+".exe\"");
reader=new BufferedReader(new InputStreamReader(pro.getInputStream()));
str=reader.readLine();
if(str != null){
System.out.println("启动"+ pidName + ".exe 成功");
return true;
}else{
return false;
}
}else{
System.out.println(pidName+".exe 未运行启动"+ pidName + ".exe 。。。");
runtime.exec("cmd /c start "+filepath+"/"+pidName+".exe");//启动应用
pro = runtime.exec("cmd.exe /c tasklist |find \""+pidName+".exe\"");
reader=new BufferedReader(new InputStreamReader(pro.getInputStream()));
str=reader.readLine();
if (str != null){
System.out.println("启动"+ pidName + ".exe 成功");
return true;
}else{
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(reader != null) reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return false;
}
public static void main(String[] args) throws Exception {
System.out.println(reStart("E:/SERVER","Invoice",3));
}
}
java 使用cmd命令重启exe程序
最新推荐文章于 2025-05-20 20:54:25 发布
