2011-03-01 69 views
0

我想通過Java程序運行八度。通過Java程序運行gnu倍頻程

我一直在實現一個java程序,我正在使用'Process'類與GNU Octave進行通信。我有:

  1. 兩個InputStreamReader的變量(一個用於獲取從八度的有效命令的輸出,另一個用於獲取錯誤)。
  2. 用於將命令提供給Octave的OutputStreamWriter變量。

我已經實現了一個機制,可以從java程序給出的命令給Octave,並且可以在java程序中正確接收結果。

當發出給Octave的命令有錯誤時,會發生問題。我從錯誤流中讀取錯誤並打印出來。這恰好發生在一次。但是在此之後,如果我嘗試通過OutputStreamWriter變量向Octave發送另一個命令,則會顯示「Broken pipe」。

回答

0

你有沒有試過[commons exec] [1]?這是一個衆所周知的圖書館,它確實有助於管理外部程序。它幫助我在Linux環境中管理來自java的外部程序。

[1]:http://commons.apache.org/exec/ 「公地EXEC」

+0

我沒有找到太多 '公地EXEC' 的文件相對於Linux操作系統。我更擅長使用'流程'類。謝謝,會試試看看。 :-) – 2011-03-01 14:23:40

+0

試試看...這個教程足夠好,而且它很難讓Process像它應該那樣工作。 – 2011-03-01 14:39:54

+0

自己找出錯誤:-)如果Octave接收到錯誤的命令,則退出。我必須使用'-i'選項運行它,即使在發出錯誤的命令後仍然運行它。 – 2011-03-02 06:03:38