我在寫一個Java程序,它通過ProcessBuilder訪問一個已編譯的C++程序。 C++程序需要一段時間才能「啓動」,但一旦完成,C++程序可以快速獲取文本字符串並獲取輸出(當前正在寫入文本文件)。在Java中輸入各種字符串到相同的進程
從本質上講,有沒有辦法讓運行進程「等待」輸入給它,而不是在啓動時輸入輸入源?我不希望每次用戶輸入一個字符串都必須重新啓動一個進程,因爲這會花費太長時間並且是不必要的。同時,我想開始這個過程,讓它「準備就緒」,然後提示用戶輸入。只要用戶這樣做,我想將該輸入發送到正在運行的進程,收集輸出並呈現該輸入。這可能嗎?
謝謝!
如果C++程序沒有得到「文本串」,它會做什麼? – Steephen
它只是等待輸入,直到它收到一些東西。它接收到輸入後,會輸出另一個基於輸入的字符串,我正在捕獲它。在此之後,它又回到等待另一個輸入。接收輸入和生成輸出花費的時間很少,但啓動過程需要一段時間。這就是爲什麼我希望能夠啓動一次流程並讓它「等待」,然後在用戶輸入時使用多個輸入來ping它,而不必重新初始化C++程序。 – Sam
那麼你更喜歡睡cpp進程查詢輸入字符串的過程? – Steephen