2016-09-27 86 views
0

我正在linux終端上運行java -jar xyz.jar命令。我在代碼中都有system.out.println語句和System.exit語句。如何在Linux中捕獲Java -jar命令的OS輸出?

如何捕獲system.exit或輸出到linux上的操作系統?我需要爲此準備一個Linux腳本嗎?

+0

只是重新'罐子什麼...> redirect.txt' –

+1

你是什麼意思 「的OS」 是什麼意思?你是否想將它寫入文件以便其他程序/進程可以使用它? –

回答

4

這可能是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)。請注意,訂單事宜,你必須這樣做重定向到文件。

+0

我只是找不到重複的。但當然這就是這樣。 –

+0

java -jar xyz.jar> the_file_to_output 2>&1 這對我有幫助。 – AKC

2

Java可以像任何其他命令一樣工作。

如果您想要標準輸出(或錯誤輸出),您可以使用通常的I/O操作符:> 2> >> |

java -jar xyz.jar > output.file 
java -jar xyz.jar | sort | less 

對於獲取System.exit值,您有特殊變量$?

java -jar xyz.jar 
echo $? 

爲了獲得更多的信息Exit statusI/O redirection

+0

謝謝。 echo $?爲我工作。 – AKC

+0

@AKC:'$?'與捕獲*輸出*無關。如果它是你想要的退出代碼,那就是你需要的。 (如果回答您的問題,請不要忘記標記答案。) –