1. 程式人生 > 實用技巧 >Centos7編譯openjdk8原始碼

Centos7編譯openjdk8原始碼

Centos7編譯openjdk8原始碼

轉載補充:

https://www.jianshu.com/p/c0fa5f987ea0

openjdk原始碼地址:

http://hg.openjdk.java.net/jdk8/jdk8/file/1773f1fd0fac

說明

編譯openjdk前提是你要先有一套jdk環境,依靠這套環境啟動你的jdk的編譯。

安裝依賴的啟動jdk環境

jre

> sudo yum install java-1.8.0-openjdk

jdk

> sudo yum install java-1.8.0-openjdk-devel

> java -version
openjdk version 
"1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode) [root@izuf6ea4rfo45y44oj74jhz /]# javac -version javac 1.8.0_191

編譯openjdk

下載openjdk

hg是下載openjdk原始碼的工具

> yum install hg

> hg clone http://hg.openjdk.java.net/jdk8u/jdk8u openjdk8
> cd openjdk8 > sh get_source.sh # 這個過程比較慢,不可急躁,下載過程很可能下載不全,多下幾次即可

完整的目錄需要有作者圈出來的模組

安裝編譯所需依賴外掛

> yum install alsa-lib-devel cups-devel libX* gcc gcc-c++ freetype-devel libstdc++-static ant make

如果還缺少,在執行下一步configure操作時會提示,到時候安裝在執行configure操作即可

> chmod +x configure  # 可執行許可權
> ./configure --enable-debug # 比較漫長

下圖為成功的結果:

# 編譯
> make

編譯成功如下:

# 編寫HelloWorld.java測試

public class HelloWorld {

        public static void main(String[] args) {
                System.out.println("HelloWorld openJDK");
        }
}
# 使用直接安裝的openjdk測試
> javac HelloWorld.java
> java HelloWorld
HelloWorld openJDK

# 移除HelloWorld.class
> rm -rf HelloWorld.class
# 使用我們自己編譯的openjdk測試

# 1、先編譯,會生成HelloWorld.class檔案
> ../build/linux-x86_64-normal-server-fastdebug/jdk/bin/javac HelloWorld.java       
# 2、執行
> ../build/linux-x86_64-normal-server-fastdebug/jdk/bin/java HelloWorld
HelloWorld openJDK

# 成功