openJDK的编译-linux

(后续会更新其他系统的更多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**)’
在这里插入图片描述

还有一个检查系统版本的问题

Fedora

Centos

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值