OpenJDK のソースコード¶
はじめに¶
OracleJDKは、OpenJDKプロジェクトのソースコードをベースに商用機能の付加、品質保証をしている製品です。
そのソースコードは、OpenJDKプロジェクトで公開されています。
入手¶
OpenJDKソースコード¶
GitHubから取得¶
最新版(masterブランチ)をクローンします。
D:\work> git clone https://github.com/openjdk/jdk.git
サイズは2GB強となりました。
サブディレクトリだけ取得¶
| Git v2.26以降 |
最初にcloneする際、ファイルの実体(blob)をダウンロードせず、またワーキングツリーの展開もしない設定とします。
D:\work> git clone --filter=blob:none --no-checkout https://github.com/openjdk/jdk.git jdk_hsdis.git
サイズは170MBとなりました。
次に、リポジトリの一部分をチェックアウトするスパースチェックアウトを有効化します。
D:¥work> cd jdk_hsdis.git
D:\work\jdk_hsdis.git> dir /B
D:\work\jdk_hsdis.git> git sparse-checkout set src/utils/hsdis
D:\work\jdk_hsdis.git> dir /B
D:\work\jdk_hsdis.git> git checkout
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 17 (delta 2), reused 1 (delta 1), pack-reused 4 (from 1)
Receiving objects: 100% (17/17), 29.38 KiB | 213.00 KiB/s, done.
Resolving deltas: 100% (2/2), done.
Updating files: 100% (17/17), done.
Your branch is up to date with 'origin/master'.
D:\work\jdk_hsdis.git> dir /B
.editorconfig
.gitattributes
.gitignore
ADDITIONAL_LICENSE_INFO
ASSEMBLY_EXCEPTION
configure
CONTRIBUTING.md
LICENSE
Makefile
README.md
SECURITY.md
src
sparse-checkoutは、指定したサブディレクトリ以下のディレクトリ・ファイルのほか、ルート直下のファイルもチェックアウトされます。これは coneモードと呼びます。ルート直下(トップレベル)には、ライセンスや全体のドキュメントなどのファイルが保持されることが一般的だからです。
トップレベルのファイルを除外したい場合は、no-coneモードを指定します。 git sparse-checkout set --no-cone src/utils/hsdis
OpenJFXソースコード¶
OpenJDK Wiki - Main から、Getting Started > Building OpenJFX と辿ったページにソースコードの入手方法が記載されています。
# for 8u-dev the "stable" stream matching JDK8 hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt # for the active development stream targeted for JDK9 hg clone http://hg.openjdk.java.net/openjfx/9-dev/rt
OpenJDKソースコードの解析¶
JDKツール¶
仕様¶
Features¶
OpenJDKの機能(Feature)は、JEPプロセスで管理されています。