2015-01-07 234 views
-2

我正在製作一個基本上與核心服務器通信的Java命令行程序(稱爲此parent),並將動態啓動另一個基於命令行的程序JAR(在父級內部使用進程調用此child)。在命令行程序中運行[不是真的]命令

問題是,當更新推出時,核心服務器將需要重新啓動所有500+父服務器,並且在任何給定時間可能會有父服務器在其中運行子進程。

子進程偵聽命令行輸入,並在收到stop(注意輸入流是鏈接的,因此如果我在控制檯輸入它會關閉)安全關閉。現在,我的問題是,如何將父服務器輸入文本放入子服務器接收的命令行中?我試過Runtime.getRuntime().exec("stop"),沒有用。

希望我已經清楚了;在此先感謝您的幫助!

+0

「命令行輸入」。你的意思是它聽/從標準輸入讀取? –

+0

是@MarcB,只是一臺掃描儀。 –

+0

所以基本上只是一種方式來注入一個字符串,所以它可以拿起一個掃描儀 –

回答

0

假設您正在使用Java的API進程,您應該保留對Process對象的引用並通過Process#getOutputStream寫出它的stdin。根據你從stdin中讀取的內容,你也需要確保寫一個換行符。