日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译JDK源码学习

發布時間:2025/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译JDK源码学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java虛擬機(JVM源碼):編譯OpenJDK源碼

一、JDK和OpenJDK的異同點

簡單理解下,兩者目前都是甲骨文公司,Sun Jdk也就是我們所說的JDK,是由帶有甲骨文官方發行編譯的。?
OpenJdk是開源的,是允許開發者自行編譯研究的。

二、如何編譯OpenJDK源碼(編譯前準備)

在編譯OpenJDK的時候,因為現在都出到10了,所以推薦大家編譯openJDK10,起碼這個不會落后。?

關于下載源碼:?
我個人推薦使用Git直接從github上拉即可,快。?
Git地址:OpenJDK10源碼

我個人用的是JDK10。

$ java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

查看配置詳情:?
bash configure -h

三、配置構建

$ bash configure --with-debug-level=slowdebug --enable-dtrace --with-jvm-variants=server --with-target-bits=64 --enable-ccache --with-num-cores=8 --with-memory-size=8000 ?--disable-warnings-as-errors

1
配置參數說明:

--with-debug-level=slowdebug 啟用slowdebug級別調試
--enable-dtrace 啟用dtrace
--with-jvm-variants=server 編譯server類型JVM
--with-target-bits=64 指定JVM為64位
--enable-ccache 啟用ccache,加快編譯
--with-num-cores=8 編譯使用CPU核心數
--with-memory-size=8000 編譯使用內存
--disable-warnings-as-errors 忽略警告

構建成功后如下:

Configuration summary:
* Debug level: ? ?slowdebug
* HS debug level: debug
* JVM variants: ? server
* JVM features: ? server: 'aot cds cmsgc compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc services vm-structs'?
* OpenJDK target: OS: macosx, CPU architecture: x86, address length: 64
* Version string: 12-internal+0-adhoc.wangdong.openjdk (12-internal)

Tools summary:
* Boot JDK: ? ? ? java version "10.0.2" 2018-07-17 Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode) ?(at /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home)
* Toolchain: ? ? ?clang (clang/LLVM from Xcode 9.4.1)
* C Compiler: ? ? Version 9.1.0 (at /usr/bin/clang)
* C++ Compiler: ? Version 9.1.0 (at /usr/bin/clang++)

Build performance summary:
* Cores to use: ? 7
* Memory limit: ? 8000 MB
* ccache status: ?Active (3.4.2)

四、編譯

make images

編譯成功后如下:大概可能需要幾分鐘

Note: Recompile with -Xlint:unchecked for details.
Creating support/demos/image/jfc/CodePointIM/CodePointIM.jar
Creating support/demos/image/jfc/FileChooserDemo/FileChooserDemo.jar
Creating support/demos/image/jfc/Font2DTest/Font2DTest.jar
Creating support/demos/image/jfc/SwingSet2/SwingSet2.jar
Creating support/demos/image/jfc/J2Ddemo/J2Ddemo.jar
Creating support/demos/image/jfc/Metalworks/Metalworks.jar
Creating support/demos/image/jfc/Notepad/Notepad.jar
Creating support/demos/image/jfc/Stylepad/Stylepad.jar
Creating support/demos/image/jfc/SampleTree/SampleTree.jar
Creating support/demos/image/jfc/TableExample/TableExample.jar
Creating support/demos/image/jfc/TransparentRuler/TransparentRuler.jar
Creating support/classlist.jar
Creating images/jmods/jdk.jlink.jmod
Creating images/jmods/java.base.jmod
Creating jdk image
Stopping sjavac server
Finished building target 'images' in configuration 'macosx-x86_64-normal-server-slowdebug'

五、驗證是否編譯成功

一定要進入到編譯后的bin包里面。?
這里面有個java可執行文件,這個是我們需要的。?

執行./java -version命令?

出現以下即為編譯成功:

~/Develop/OpenJdk/openjdk/build/macosx-x86_64-normal-server-slowdebug/jdk/bin on  jdk/jdk! ? 20:37:11
$ ./java -version
openjdk version "12-internal" 2019-03-19
OpenJDK Runtime Environment (slowdebug build 12-internal+0-adhoc.wangdong.openjdk)
OpenJDK 64-Bit Server VM (slowdebug build 12-internal+0-adhoc.wangdong.openjdk, mixed mode)

總結

以上是生活随笔為你收集整理的编译JDK源码学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。