linux 编译openjdk
(后续会更新其他系统的更多jdk版本的,目前没时间,倒腾这种东西有点浪费时间和没有必要)
deepin篇
软件环境:jdk7 && gcc4.8 还有openJdk8 的源码
总的评价:
难度在于如果你编译openJDK8,以来的GCC4.8的安装是有些难度的,我是换了早期的软件仓库源才安装了gcc4的,其它的很顺利基本没有遇到问题
1.安装GCC
好了,换了版本和源
2.更换文件/etc/apt/source.list
#deb https://community-packages.deepin.com/deepin/ apricot main contrib non-free
#deb [by-hash=force] http://packages.deepin.com/deepin/ stable main contrib non-free
deb [by-hash=force] http://packages.deepin.com/deepin/ unstable main contrib non-free#deb-src https://community-packages.deepin.com/deepin/ apricot main contrib non-free
安装gcc和g++
sudo apt install g++
sudo apt install g++-8
84 sudo apt install g++
86 g++ --version
61 sudo apt install gcc-4.8
62 sudo apt install gcc-4.9
69 sudo apt install g++-4.9
70 sudo apt install g++-4.8
71 sudo cat /etc/apt/sources.list
72 ls /usr/bin/gcc*
73 sudo gedit /etc/apt/sources.list
74 sudo apt update
75 sudo update-alternatives --config gcc
77 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
88 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100
89 g++ --version
编译环节
安装jdk7配置环境(自己百度)
1 sudo apt install gcc
3 sudo mv jdk7/ /opt/
4 cp /etc/profile /etc/profile.bak
5 sudo cp /etc/profile /etc/profile.bak
6 ls
7 gedit /etc/profile
8 sudo deepin-editor /etc/profile
9 sudo source /etc/profile
10 source /etc/profile
11 java -version
12 java
13 javac -v
14 javac -version
configure and make
cd openjdk/
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev
bash configure --enable-debug --with-jvm-variants=server --with-target-bits=64 --with-conf-name=openjdk8
make all ZIP_debuginfo_files=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
//编译报错
gedit hotspot/make/linux/makefiles/gcc.make
参考
https://www.cnblogs.com/bosslv/p/11316836.html
https://segmentfault.com/a/1190000040821702?utm_source=sf-similar-article
https://blog.csdn.net/boling_cavalry/article/details/70557537?utm_source=blogxgwz6
https://blog.csdn.net/desiyonan/article/details/80802066
https://www.cnblogs.com/mazhimazhi/p/13983301.html
https://www.cnblogs.com/iou123lg/p/9696039.html
Ubuntu
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libfreetype6-dev
openJdk8
如果编译openJdk8需要gcc4.9左右的版本,所以你需要修改你的ubuntu源
bash ./configure --with-target-bits=64 --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0 --with-jvm-variants=server
make all ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
sudo vim /etc/apt/sources.list后添加
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
更换gcc的版本和上边deepin一样
openJDK11
这里我编译的是openjdk11,因为openjdk8 要gcc4.9,我觉得下载修改很烦。高版本的openjdk报错会很少,第一次编译建议还是编译openjdk11,比8的问题少多了
安装jdk,并配置环境
/etc/profile
export JAVA_HOME=/opt/jdk10
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib/:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin
把jdk10的lib目录copy到新建一个jre文件夹里边。可以适当把dt.jar, tool.jar也可以放到jre/lib/目录下
进入源码目录
bash configure --enable-debug --with-jvm-variants=server --with-target-bits=64 --disable-warnings-as-errors --with-boot-jdk=/opt/jdk10 --with-native-debug-symbols=internal --with-conf-name=openjdk11
make all ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
可能遇到的报错
Warning: ××× ‘int readdir_r(DIR*, dirent*, dirent**)’
还有一个检查系统版本的问题