【发布时间】:2019-08-04 15:28:14
【问题描述】:
我想通过 ProcessBuilder 在 java 中重新创建 java -jar [jar] &>logfile &。
这是我当前的代码:
File outFile = new File(".."); // logfile
ProcessBuilder builder = new ProcessBuilder(args); // args = ["java", "-jar", "[jar]"]
builder.redirectError(outFile);
builder.redirectOutput(outFile);
Process process = builder.start();
上述 jar 是一个 Web 服务器,应该永远运行。但是,当我退出生成服务器的 java 进程时,它也会终止。
我现在的问题是:如何告诉 ProcessBuilder 在调用者退出时不会终止的后台线程中执行命令?
使用 nohup 前置参数并没有改变这种行为,使用:
args = ["nohup", "java", "-jar", "[jar]"]
我也试过
args = ["nohup", "java", "-jar", "[jar]", "&"]
这两个都不起作用,无论是在 windows 还是 linux 上
【问题讨论】:
-
在命令前添加
nohup没有任何作用 -
请编辑您关于如何尝试使用
nohup命令的问题,并描述此解决方案在您的情况下是如何失败的。 -
在 Windows 上使用“start”和/或“cmd”,请参阅stackoverflow.com/questions/11394394/…
标签: java background-process processbuilder