如果不关闭Java应用程序,无法从Java启动外部程序

Gls*_*nna 1 java external-process runtime process launch

我正试图从我的java swing应用程序启动一个外部程序:

Process proc = Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)

但是外部程序实际上从未实际启动,直到我每次都关闭我的java应用程序.它只在我关闭后等待启动.

我试图运行的外部程序是一个带参数的exe:

cmd = "externalProgram.exe -v --fullscreen --nowing";
Run Code Online (Sandbox Code Playgroud)

这可能是错的.有趣的是,如果我尝试一些简单的事情,它会按预期工作:

Process proc = Runtime.getRuntime().exec("notepad.exe");
Run Code Online (Sandbox Code Playgroud)

Ern*_*ill 7

在继续之前,您可能需要从过程的标准输出中读取或关闭标准输入.对于读取输出,问题是缓冲区可能已满,阻塞程序; 为了关闭输入,问题是某些程序会尝试从那里读取数据,如果它可用,等待这样做.这些技巧中的一个或两个很可能会为你解决问题.