Windows10通過WSL編譯jdk12
Windows使用WSL編譯OpenJDK
-
安裝Ubuntu以及配置國內映象
-
首選確保windows10已經安裝了ubuntu
-
更換ubuntu20.04國內映象,這裡我選擇的是阿里雲映象
sudo vim /etc/apt/sources.list
-
將使用如下內容替換原先源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse -
儲存退出,然後執行以下命令
sudo apt update
sudo apt upgrade
-
至此,國內映象已經配置好了。
-
-
由於編譯jdk N版本需要JDK N-1版本作為boot版本,我們開始下載和配置jdk11以及環境變數
-
首先執行
sudo apt get install open-11-jdk
-
等待下載好一般預設下載路徑
/usr/lib/jvm/java-11-openjdk-amd64
-
開始配置環境變數,輸入命令:
sudo vim ~/.bashrc
-
在最下方輸入如下:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export CLASSPATH=${JAVA_HOME}/lib
export PATH=\({JAVA_HOME}/bin:\)PATH
-
更新環境變數
source ~/.bashrc
-
-
準備安裝gcc7和g++7,我經過測試,gcc4和gcc9都是不行的。
sudo apt install gcc-7 g++-7
-
需要對gcc和g++進行更換軟連線
sudo rm -r gcc
sudo rm -r g++
sudo ln -s /usr/bin/gcc-7 gcc
sudo ln -s /usr/bin/g++-7 g++
-
檢測gcc和g++版本
gcc -v
g++ -v
-
開始下載jdk12原始碼,在官網下好之後,在linux中建立一個資料夾,把windows下載好的jdk12原始碼輔助到WSL中.例如我已經下載到C盤下:
cp /mnt/c/OpenJDK12-master.zip /home/heiye/jdk12_src
-
然後解壓
unzip OpenJDK12-master.zip
-
解壓完後,進入解壓後的目錄下,由於環境是WSL環境,以及在編譯過程中可能會有警告而被高版本gcc當做錯誤而停止編譯,我們輸入:
bash configure --enable-debug --with-jvm-variants=server
-
然後會有一大堆的提示,說缺少很多依賴庫,這時候我們需要根據提示來下載這些依賴,例如
sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf
-
直到出現
-
說明環境已經準備好了,開始編譯
male all
-
由於編譯時間很長,需要耐心等待
-
當出現如下就代表編譯成功
-
進去測試一下:可以看出java版本。