我正在尝试使用ProcessBuilder类通过Java启动一个外部过程,而这一点很有效。 目前使用该命令运行:
new ProcessBuilder("java", "-jar", jarfile, args);
我想要做的就是这一点,但是要以低优先级开始这个过程。 我的程序目前只在Windows上运行,所以窗口特定的解决scheme对我来说很好。 一些研究表明我使用“开始”命令,但是当我从Java尝试这样做时,会发出一个exception,表示这是一个无法识别的命令(与cmd.exe相同的命令)。
有谁知道如何从Java启动一个进程(如果需要的话,Windows特定的),还有什么belownormal
级呢?
使用启动命令 。 这是依赖于窗口,但做你需要的。 我已经读过 ,没有跨平台的方式。
ProcessBuilder pb = new ProcessBuilder("cmd", "/C start /B /belownormal javaws -version"); System.out.println("Before start"); Process start = pb.start();
甚至可以读取输入结束错误流。
等待:
ProcessBuilder pb = new ProcessBuilder("cmd", "/C start /B /belownormal /WAIT javaws -sdasd"); System.out.println("Before start"); Process start = pb.start(); start.waitFor(); System.out.println("Done");
为了过早的毁灭:
ProcessBuilder pb = new ProcessBuilder("cmd", "/C start /B /belownormal /WAIT javaws -sdasd"); System.out.println("Before start"); Process start = pb.start(); start.destroy(); start.waitFor(); System.out.println("Done");