JDK源码——JDK8源码编译全流程(linux)
摘要
大家平時用的JDK都是orcal官網等進行編譯好了。但是有同學在公司做開發時候或者是自學習的時候需要對源碼進行操作,甚至對JDK做定制化的開發的時候,就需要我們自己進行源碼進行重新編譯。因此博文將詳細介紹JDK8源碼自編譯的流程,給大家一個學習和參考的方法。
一、linux系統安裝所需的依賴
yum install alsa-lib-devel cups-devel libX* gcc gcc-c++ freetype-devel libstdc++-static ant make yum install clang -y yum install clang++ -y yum install autoconf -y yum install freetype freetype-config -y?檢查依賴是否安裝成功:
?二、安裝一個jdk作為bootstrap jdk
你要編譯openjdk8 那么電腦上至少都要裝一個jdk7,下圖是我電腦上配置的jdk,配置流程跟在Linux上配置jdk一樣的
三、下載openjdk源碼
Java Platform, Standard Edition 8 ReferenceImplementations
四、自動配置
解壓下載好的源碼包之后,進入解壓后的源碼包(下圖為目錄結構),輸入 sh configure 進行自動配置(默認沒有build目錄,這是編譯成功后生成的)
五、進行編譯
第一次編譯輸入make all (全量編譯)指令,等待時間比較久,耐心等待
進入build目錄在進入生成的 linux-x86_64-normal-server-release目錄
這里面的images目錄是編譯生成的jdk成品鏡像,?
六、源碼編譯結果測試
修改好自己的代碼后進行 make images(增量編譯) 就能完成源碼的修改并生效。PS:給虛擬機的內存要大,不然打開idea執行編譯是內存會不夠用,或者把idea關閉之后執行編譯
特別提示:注意的是此JDK源碼是在linux下進行編譯的,因此生成的SDK的包只能在linux下能運行成功。如果將這個SDK導入woidow將不會起作用。
有朋友就會問,我平時碼代碼的時候都是在window工作的,你用Unix內核的系統給我編譯出來的玩意能在window上運行么?回答肯定是不行的,還記得java為什么能跨平臺么?沒錯不是java能跨平臺,而是JVM的實現是居于不同平臺的,那就意味著,不同平臺編譯出來的JDK只能在對應平臺上運行,JVM根據不同平臺翻譯為對應的機器碼,JVM才是java能跨平臺的基石;那么window平臺的碼友就不好意思了,只能自己嘗試在window上編譯。
博文參考
JDK---00Linux上編譯openjdk8 - Jenne - 博客園
Ubuntu14.04LTS編譯JDK1.8 - _小妖 - 博客園
Linux下編譯OpenJDK源碼 - 簡書
Java Platform, Standard Edition 8 ReferenceImplementations
總結
以上是生活随笔為你收集整理的JDK源码——JDK8源码编译全流程(linux)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1008 数组元素循环右移问题 (20分
- 下一篇: python中直方图-Numpy,Pyt