因為對于java裡的vtable,itable,有個地方還沒搞明白,不得已去下個openjdk來研究下。
本來很不願意去編繹openjdk,因為很有可能做的隻是無用功,還有可能要去解決各種找不到連結庫的問題。
不過,沒想到雖然有些麻煩,但是出人意料的順利。
環境:ubuntu 13.10,已經安裝了oracle jdk7。
首先下載下傳:
再用unzip解壓。
在解壓後的檔案夾裡,可以發現有一個“readme-builds.html”的檔案,這個就是編繹的說明了。
或者在網上也有:
http://hg.openjdk.java.net/jdk7/build/raw-file/tip/readme-builds.html#ubuntu
裡面雖然關于ubuntu的最後是9.04版本,不過可以對照着畫葫蘆:
安裝依賴相關的包:
因為我已經安裝了oracle jdk,是以就沒有再安裝openjdk7了,事實證明,不用安裝openjdk7也可以。
據readme裡的說明,先用下面的指令來檢查下:
如果提示下面的錯誤:
則先執行:
如果提示java_home已經設定了:
則用unset取消:
還要設定下這個環境變量:
最後,可以用make all來編繹了。不過編繹一次太慢了。還有下面的這些編繹選項,在makefile裡可以看到:
可以考慮用make fastdebug_build來快速編繹。
最後生成的檔案當然在build檔案夾下了。
對于debug版,可以用下面的指令來檢視編繹出來的java示持哪些jvm的配置項:
如果是非debug,則可以使用下面的指令來輸出可用的jvm配置項: