推 Kenny042183:哇~感謝您 我要研究看看才行!!大感謝!! 04/21 17:25
※ 引述《adrianshum (Alien)》之銘言:
: 通常這類 3rd party lib 應不會那麼笨
: 直接丟東西到 stdout/stderr
: 很可能會用了 logging library.
: 你看看它的 doc 會不會有寫.
: 可能在 logging 的 config 關了就好
1.
假如你自己的程式是不需要對 standard output 作輸出的,就直接使用 javaw.exe
來執行你的程式。
2.
如果 third party library 真的是直接對 System.out 作輸出,可以試著在 invoke
third party method 前把 standard output 換成一個 null op 的 PrintStream,
之後再換回原來的 standard output(如果你自己的程式需要往 standard output 作
輸出)。有可能 third party library 是對 standard error 作輸出,可作同樣的
處理。
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#setOut(java.io.PrintStream)
如果 third party library 對 null op 的 PrintStream 作了太多次 method call
還是會造成無法接受的效率,可以考慮去修改 third party classes 的 bytecode,
把對 standard output 作輸出的部分濾掉。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.143.26
※ 編輯: sbrhsieh 來自: 218.173.143.26 (04/21 17:23)