我正在为我的 Java 应用编写一个更新机制。 我创建了一个 Windows 批处理文件,退出我的程序,批处理文件继续删除我的 Jar,从远程位置复制新的,启动 jar。 我的问题:删除 + 复制有效,但是 - 应用程序无法启动。 我认为问题是我不知道如何让 Java 在单独的进程树中执行批处理文件。 运行时: 运行时.getRuntime() 我打开一个子进程。
所以我的问题 - Java 如何在单独的进程树中执行批处理文件?
最佳答案
Here是一种使用 cmd 作为中间层的解决方法:
public class Main {
public static void main(String[] args) throws Exception {
Process p = Runtime.getRuntime().exec("cmd /c c:\\test.bat");
}
}
test.bat 将包含
@echo off
PING 1.1.1.1 -n 1 -w 5000 >nul
java -jar "[path]"
关于java - Java如何在单独的进程树中执行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657038/