[投稿123] 用agent提早置換standard out

看板java作者 ( )時間12年前 (2013/09/27 14:21), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
1. 建立一個agent class import java.io.PrintStream; class Replace{ static class MyPrintStream extends PrintStream{ PrintStream out; MyPrintStream(PrintStream out){ super(out); } public void println(String s){ for (int i = 0; i < s.length(); i++) { print(s.charAt(i)+0+""); } print("\n"); } } public static void premain(String agentArgs){ System.setOut(new MyPrintStream(System.out)); } } 2. 編譯完後將class打包成agent.jar,並加上manifest META-INF/MANIFEST.MF: Manifest-Version: 1.0 Premain-Class: Replace 3. 執行時帶入agent java -javaagent:agent.jar Output123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.92.133

09/27 14:37, , 1F
因為是用 -javaagent 的方式,因此判定為不同手法 \囧/
09/27 14:37, 1F
文章代碼(AID): #1IHIFvXU (java)