我正在linux終端上運行java -jar xyz.jar命令。我在代碼中都有system.out.println語句和System.exit語句。如何在Linux中捕獲Java -jar命令的OS輸出?
如何捕獲system.exit或輸出到linux上的操作系統?我需要爲此準備一個Linux腳本嗎?
我正在linux終端上運行java -jar xyz.jar命令。我在代碼中都有system.out.println語句和System.exit語句。如何在Linux中捕獲Java -jar命令的OS輸出?
如何捕獲system.exit或輸出到linux上的操作系統?我需要爲此準備一個Linux腳本嗎?
這可能是SO的話題。
你只是把它重定向:
java -jar xyz.jar > the_file_to_output
如果使用System.err
輸出以及System.out
輸出,想重定向兩個,這是一個稍微有點複雜,因爲你需要重定向出的文件和然後重定向錯誤到出:
java -jar xyz.jar > the_file_to_output 2>&1
2>&1
東西是什麼重定向錯誤(標準流#2)到出(標準流#1)。請注意,訂單事宜,你必須這樣做後重定向出到文件。
我只是找不到重複的。但當然這就是這樣。 –
java -jar xyz.jar> the_file_to_output 2>&1 這對我有幫助。 – AKC
Java可以像任何其他命令一樣工作。
如果您想要標準輸出(或錯誤輸出),您可以使用通常的I/O操作符:> 2> >> |
java -jar xyz.jar > output.file
java -jar xyz.jar | sort | less
對於獲取System.exit值,您有特殊變量$?
java -jar xyz.jar
echo $?
爲了獲得更多的信息Exit status和I/O redirection
謝謝。 echo $?爲我工作。 – AKC
@AKC:'$?'與捕獲*輸出*無關。如果它是你想要的退出代碼,那就是你需要的。 (如果回答您的問題,請不要忘記標記答案。) –
只是重新'罐子什麼...> redirect.txt' –
你是什麼意思 「的OS」 是什麼意思?你是否想將它寫入文件以便其他程序/進程可以使用它? –