2011-10-21 69 views
3

我正在寫一個插入到一個更大的框架的Java類。在上游某處,代碼將System.out重定向到標準輸出以外的某個位置,但我確實想要將標準輸出的調試消息打印出來。有沒有辦法讓我重新回到標準狀態?回到Java的控制檯

+0

找出它指向的地方,並指出* *回到標準輸出? – fredley

回答

1

爲什麼不使用System.err

我看到的最直接的解決方案就是在調用庫之前將System.out存儲在類中的某處。

環顧一下後,您應該可以使用System.console().printf(...)

+0

它似乎也在吃System.err。我是下游課程,所以我沒有修改我的調用者的選項。 System.console()。printf看起來像它應該工作。我會試一試。 –

0

你可以簡單的寫:

System.setOut(System.out); 
+2

這不是重言式嗎? –

2

也許是一個更簡單的解決方案是使用System.err的,而不是用System.out進行調試信息?這會容易很多,不會引入任何重定向的副作用。

+1

同樣,您可以使用Java Logger和ConsoleHandler寫入System.err。這是一個更多的工作,但可以讓您訪問開發環境之外的調試消息。 –

+0

它似乎也在吃System.err。 –