[英]How this Reflection Java Code catch the String in the System.out.println?
[英]How to catch Java application output (System.out.println()) when connected to remote host (OS Solaris) via Putty and connection is lost?
如果通過遠程會話丟失並再次連接時通過Putty連接到遠程主機(OS Solaris)時如何捕獲Java應用程序輸出( System.out.println()
)? 遠程主機上的Java應用程序是這樣啟動的:
java -jar /SomeApplication.jar和
現在輸出可見。 但是,如果退出遠程會話並再次連接-盡管仍在運行相同的Java應用程序,則看不到更多輸出-我可以通過發出以下命令來看到它:
ps -ef | grep Java
輸出為:
根5221 1 0 20:04:15? 1:20 java -jar SomeApplication.jar
該應用程序ID為5221,並且正在運行,但是其輸出在某處消失。
快速而整潔的建議是在screen
會話中運行該應用程序(檢查Solaris軟件包)。
首先,啟動屏幕:
$ screen
然后像往常一樣在screen
內啟動應用程序:
$ java -jar /SomeApplication.jar
而你被設置。 您不需要結尾&
:可以分離(請參閱下文)並注銷; 屏幕會話將保持運行。 下次登錄時,只需發出:
$ screen -x
會話及其輸出將重新連接 。
快速參考:
使用CTRL + a d (首先使用CTRL + a在一起,然后使用d )與會話分離 ,以便離開screen
會話(在其中運行Java應用程序),返回Solaris Shell並執行其他操作-包括優雅地登出。
使用CTRL + a ]進入“復印模式”,以便您可以上下滾動,並使用q退出復印模式。
還有許多其他有用的功能,只需閱讀快速介紹:)
在這些情況下,日志文件的播放效果更好。sysouts也是昂貴的操作。 或者,當您啟動Java程序時,將錯誤/輸出重定向到臨時文件。 因此,您以后可以查看它。
java -jar /SomeApplication.jar > wherever_you_want_output.log 2>&1 &
>將system.out.println重定向到文件,2>&1將system.err.println發送到同一文件(您也可以放2> error_file.log
以獲取單獨的System.err.println()輸出。
從長遠來看,盡管您應該通過log4j或java日志記錄框架來使用日志記錄框架。
如果您想觀察輸出,然后隨着輸出的增加,可以執行tail -f whatever_you_want_output.log
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.