我目前正在編寫一個需要輸出java jar的ruby應用程序。如何用ruby獲取java輸出
我目前無法使用open3從java命令獲得任何輸出。
但是,我用'ls'成功地測試了下面的ruby代碼。我也嘗試使用java的絕對路徑:'/ opt/java/jre/bin/java'沒有成功。
謝謝你,提前
我目前正在編寫一個需要輸出java jar的ruby應用程序。如何用ruby獲取java輸出
我目前無法使用open3從java命令獲得任何輸出。
但是,我用'ls'成功地測試了下面的ruby代碼。我也嘗試使用java的絕對路徑:'/ opt/java/jre/bin/java'沒有成功。
謝謝你,提前
java -version
寫至標準錯誤,所以下面應該工作:
@output = stderr.read
在Linux上,你可以在輸出由supressing或者STDERR或去殼檢查STDOUT:
java -version >/dev/null
仍然打印信息。
我工作過,非常感謝你=)我一直對我的頭撞了一個小時大聲笑 – 2012-04-27 16:49:41
你需要open3嗎?在Ruby 1.9,我會做:
pipe = IO.popen([ '/path/to/java', '-jar', '/path/to/jarfile.jar',
{SDTERR=>STDOUT} ]
pipe.close_write
puts pipe.readlines
但是往往有很多更多的這個運行Java程序(設置CLASSPATH,例如);因此運行運行Java程序的shell腳本可能會更好。
也許有輸出等待從標準錯誤 – theglauber 2012-04-27 16:41:48
讀爲[尼古拉斯B.](http://stackoverflow.com/users/916657/niklas-b)已經應答,'的java -version'寫入'STDERR' 。如果這不能解釋您遇到的問題,請更新問題以顯示更接近您要執行的jar的內容。 – mikej 2012-04-27 16:44:57
是的......我猜測命令與jar文件輸出一個錯誤(要麼沒有找到jar文件,或其他一些事情出錯了,可能是CLASSPATH中缺少的東西)。無法確定沒有更多的信息。 – theglauber 2012-04-27 16:48:52