1. 程式人生 > >重新編譯ClassLoader記錄被載入的類

重新編譯ClassLoader記錄被載入的類

1.新建java專案,建包java.lang,新建類ClassLoader(將src.zip中的ClassLoader.java中的內容copy過來),修改loadClass(String name)方法:

 public Class<?> loadClass(String name) throws ClassNotFoundException {
        String classNames = System.getProperty("SHOWEXECLASS");
        if (null!=classNames&&!"".equals(classNames)) {
            String
[] nameArray=classNames.split("/"); for (String str : nameArray) { if (name.startsWith(str)) { System.out.println(name); break; } } } return loadClass(name, false); }

2.build專案,找到對應的class檔案(bin或target目錄下)

這裡寫圖片描述

3.關閉eclipse,找到jdk1.7.0_17\jre\lib\rt.jar(你的jdk路徑),用WinRAR開啟到java\lang目錄下:

4.將2我們自己的生成的class檔案拖到rt.jar的這個目錄下(替換掉原來的class),關閉。重新開啟eclipse:修改run configruations 新增-DSHOWEXECLASS=java.lang的vm引數:
這裡寫圖片描述

隨便寫個main方法測試結果:

這裡寫圖片描述

注意:eclipse所用jdk和java專案所用jdk要一致,不然報版本不對