Centos源码编译openJDK——安装加踩坑指南

1 篇文章 0 订阅
1 篇文章 0 订阅

我是灼灼,一只初学Java的大一金渐层。
向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔;热爱文学的浪潮,白日梦到底却总在现实里清醒;艳羡平静又极度渴盼奔跑的力量。
欢迎与我交流鸭· QQ:1517526827;
个人博客:https://blog.csdn.net/weixin_52777510?spm=1001.2101.3001.5343

Centos 7源码编译OpenJDK12

编译日志:

参考博客一:安装基本依赖它~

参考博客二:部分来源于它(报错问题可参考)~

非常感谢!!!

准备:

0)我的虚拟机是Linux的Centos 7!

1)xftp工具下载地址

下载以及使用可以参考我之前写的博客~

2)Openjdk源码下载地址:

下载链接提取码: 318i

3)jdk11

下载链接提取码: gkcg

安装:

1.使用xftp将windows中的Openjdk12源码压缩包传输到虚拟机中(放到/home下)

PS:直接传到/home目录下不可行,所以传到documents目录下面,手动移动了一下;

2.解压压缩包命令:

unzip openjdk-12+32_src.zip

看图图:

在这里插入图片描述

3.安装驱动jdk11
1)安装jdk11,命令:

yum install java-11-openjdk-devel -y

看图图

在这里插入图片描述

2)通过xftp将jdk11传入Linux下解压缩:

仍旧是手动移动到/home目录下;

3)解压,命令:

tar -xzvf jdk-11.0.6_linux-x64_bin.tar.gz

4)配置添加环境变量,编辑/etc/profile文件,命令:

vim /etc/profile

增加以下内容(注意如果路径不一样要改成自己的路径):

export JAVA_HOME=/usr/java/jdk1.8.0_152

exportCLASSPATH=.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAHOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

这个显示有问题的参见第二篇博客

4.bash configure命令,这个后面下载好了所有依赖再执行~

报错是找不到命令,不要担心~接下来---->

依次执行三个yum命令~

sudo yum groupinstall “Development Tools”

安装按y;

sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel

按y;

sudo yum install fontconfig-devel

结束!

看图图,呃,这是执行完三个命令的时候:
在这里插入图片描述
由于第一个编译命令不能执行,所以改为参考第二个博客;

安装依赖命令依次(因为不清楚安装了没有,所以都试了一遍,注意看注释!):

命令一:sudo yum -y groupinstall “Development Tools”

由于yum不能用修改命令为:

yum group info ‘Development Tools’ //实现new安装

命令二:sudo yum -y install freetype-devel //已安装

命令三:sudo yum -y install cups-devel //new安装

命令四:sudo yum -y install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel //已安装
命令五:sudo yum install -y libasound2-dev

报错:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirrors.ustc.edu.cn
  • extras: ftp.sjtu.edu.cn
  • updates: ftp.sjtu.edu.cn
    No package libasound2-dev available.
    Error: Nothing to do

解决(修改命令):

yum install alsa-lib-devel //new安装

命令六:sudo yum install -y libffi-dev

报错:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile

  • base: mirrors.ustc.edu.cn
  • extras: mirrors.nju.edu.cn
  • updates: mirrors.nju.edu.cn
    No package libffi-dev available.
    Error: Nothing to do

解决:

更换为命令:yum install -y libffi libffi-devel //new安装

命令七:sudo yum install -y autoconf //已安装

5.最终实现bash configure命令

经过试验,发现其实不需要移动文件位置(其实我手动迁移不了-_-),只需要在当前目录输入命令进入解压后的文件即可:

cd openjdk

openjdk是源码解压后的文件夹名~

【不知道上面二次安装的依赖需不需要,因为我前一步都试着安装了一遍,如果有别的报错的话,可以试试按照提示补充依赖包~】

进入当前目录后再输入这个命令,complete!

看图图:

在这里插入图片描述

6.源码编译生成jdk

命令:

make images

呃,Linux中间突然要更新,我就更新了…

更新完首先要退回到未编译状态,因为编译被中断了!

执行命令:

make clean

看图图:

在这里插入图片描述

再次编译,命令:

make images

又卡住了,先展示一下我的编译内容吧…

[root@localhost xxxxx]# cd openjdk
[root@localhost openjdk]# make clean
Building target ‘clean’ in configuration ‘linux-x86_64-server-release’
Cleaning hotspot build artifacts … done
Cleaning jdk build artifacts … done
Cleaning bootcycle-build build artifacts … done
Cleaning test-results build artifacts … done
Cleaning test-support build artifacts … done
Cleaning test build artifacts … done
Cleaning buildtools build artifacts … done
Cleaning support build artifacts … done
Cleaning images build artifacts … done
Cleaning make-support build artifacts … done
Cleaning test-make build artifacts … done
Cleaning bundles build artifacts … done
Cleaning buildjdk build artifacts … done
Cleaned all build artifacts.
Finished building target ‘clean’ in configuration ‘linux-x86_64-server-release’

#实现再次编译:

[root@localhost openjdk]# make images
Building target ‘images’ in configuration ‘linux-x86_64-server-release’
Compiling 8 files for BUILD_TOOLS_LANGTOOLS
Creating hotspot/variant-server/tools/adlc/adlc from 13 file(s)
Compiling 2 files for BUILD_JVMTI_TOOLS
Compiling 1 files for BUILD_JFR_TOOLS
Parsing 2 properties into enum-like class for jdk.compiler
Compiling 19 properties into resource bundles for jdk.compiler
Compiling 13 properties into resource bundles for jdk.javadoc
Compiling 12 properties into resource bundles for jdk.jdeps
Compiling 7 properties into resource bundles for jdk.jshell
Compiling 117 files for BUILD_java.compiler.interim
Compiling 396 files for BUILD_jdk.compiler.interim
Creating support/modules_libs/java.base/server/libjvm.so from 987 file(s)
Creating hotspot/variant-server/libjvm/gtest/libjvm.so from 114 file(s)
Creating hotspot/variant-server/libjvm/gtest/gtestLauncher from 1 file(s)
Compiling 304 files for BUILD_jdk.javadoc.interim
Compiling 162 files for BUILD_TOOLS_JDK
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Compiling 2 files for COMPILE_DEPEND
Compiling 3 files for BUILD_VM_COMPILER_MATCH_PROCESSOR
Compiling 5 files for BUILD_VM_COMPILER_NODEINFO_PROCESSOR
Compiling 3 files for BUILD_VM_COMPILER_OPTIONS_PROCESSOR
Compiling 14 files for BUILD_VM_COMPILER_REPLACEMENTS_PROCESSOR
Compiling 3 files for BUILD_VM_COMPILER_SERVICEPROVIDER_PROCESSOR
Creating buildtools/jdk.vm.compiler.match.processor.jar
Creating buildtools/jdk.vm.compiler.nodeinfo.processor.jar
Creating buildtools/jdk.vm.compiler.options.processor.jar
Creating buildtools/jdk.vm.compiler.replacements.verifier.jar
Creating buildtools/jdk.vm.compiler.serviceprovider.processor.jar
Compiling 11 properties into resource bundles for jdk.jartool
Compiling 11 properties into resource bundles for jdk.management.agent
Compiling 3 properties into resource bundles for jdk.jdi
Compiling 4 properties into resource bundles for jdk.jlink
Compiling 3 properties into resource bundles for jdk.jlink
Compiling 1 properties into resource bundles for jdk.jlink
Compiling 224 properties into resource bundles for jdk.localedata
Compiling 188 files for BUILD_jdk.rmic.interim
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Compiling 31 files for BUILD_JRTFS
Creating support/modules_libs/java.base/jrt-fs.jar
Compiling 2 files for BUILD_BREAKITERATOR_BASE
Compiling 2 files for BUILD_BREAKITERATOR_LD
Compiling 11 properties into resource bundles for java.logging
Compiling 11 properties into resource bundles for java.base
Compiling 6 properties into resource bundles for java.base
Compiling 3027 files for java.base
Compiling 89 properties into resource bundles for java.desktop
Compiling 10 files for java.instrument
Compiling 35 files for java.logging
Compiling 330 files for java.management
Compiling 1831 files for java.xml
Compiling 30 files for java.security.sasl
Compiling 129 files for java.rmi
Compiling 140 files for java.net.http
Compiling 15 files for java.scripting
Compiling 5 files for java.transaction.xa
Compiling 22 files for java.smartcardio
Compiling 193 files for jdk.internal.vm.ci
Compiling 24 files for jdk.management
Compiling 9 files for jdk.unsupported
Compiling 61 files for jdk.internal.jvmstat
Compiling 119 files for jdk.charsets
Compiling 22 files for jdk.crypto.ec
Compiling 68 files for jdk.dynalink
Compiling 3 files for jdk.internal.ed
Compiling 44 files for jdk.httpserver
Compiling 97 files for jdk.internal.le
Compiling 51 files for jdk.internal.opt
Compiling 33 files for jdk.jartool
Compiling 1 files for jdk.jdwp.agent
Compiling 175 files for jdk.jfr
Compiling 11 files for jdk.jstatd
Compiling 1703 files for jdk.localedata
Compiling 9 files for jdk.net
Compiling 1 files for jdk.pack
Compiling 593 files for jdk.scripting.nashorn
Compiling 33 files for jdk.sctp
Note: Some input files use or override a deprecated API that is marked for removal.
Note: Recompile with -Xlint:removal for details.
Compiling 138 files for BUILD_NASGEN
Compiling 94 files for jdk.xml.dom
Compiling 15 files for jdk.zipfs
Running nasgen
Compiling 117 files for java.compiler
Warning: generation and use of skeletons and static stubs for JRMP
is deprecated. Skeletons are unnecessary, and static stubs have
been superseded by dynamically generated stubs. Users are
encouraged to migrate away from using rmic to generate skeletons and static
stubs. See the documentation for java.rmi.server.UnicastRemoteObject.
Compiling 18 files for java.datatransfer
Compiling 15 files for java.prefs
Compiling 197 files for java.naming
Compiling 77 files for java.sql
Compiling 275 files for java.xml.crypto
Compiling 15 files for jdk.attach
Compiling 400 files for jdk.compiler
Compiling 70 files for jdk.crypto.cryptoki
Compiling 305 files for jdk.javadoc
Compiling 38 files for jdk.jcmd
Compiling 133 files for jdk.jdeps
Compiling 251 files for jdk.jdi
Compiling 14 files for jdk.management.jfr
Compiling 16 files for jdk.naming.dns
Compiling 7 files for jdk.naming.rmi
Compiling 188 files for jdk.rmic
Compiling 11 files for jdk.scripting.nashorn.shell
Note: Some input files use or override a deprecated API that is marked for removal.
Note: Recompile with -Xlint:removal for details.
Warning: generation and use of skeletons and static stubs for JRMP
is deprecated. Skeletons are unnecessary, and static stubs have
been superseded by dynamically generated stubs. Users are
encouraged to migrate away from using rmic to generate skeletons and static
stubs. See the documentation for java.rmi.server.UnicastRemoteObject.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Compiling 14 files for java.management.rmi
Compiling 217 files for java.security.jgss
Compiling 2784 files for java.desktop
Compiling 56 files for java.sql.rowset
Compiling 31 files for jdk.management.agent
Compiling 75 files for jdk.jlink
Compiling 94 files for jdk.jshell
Compiling 30 files for jdk.security.auth
Compiling 16 files for jdk.security.jgss
Warning: generation and use of skeletons and static stubs for JRMP
is deprecated. Skeletons are unnecessary, and static stubs have
been superseded by dynamically generated stubs. Users are
encouraged to migrate away from using rmic to generate skeletons and static
stubs. See the documentation for java.rmi.server.UnicastRemoteObject.
Compiling 1574 files for jdk.internal.vm.compiler
Compiling 108 files for jdk.aot
Compiling 1 files for java.se
Compiling 18 files for jdk.accessibility
Compiling 3 files for jdk.editpad
Compiling 1000 files for jdk.hotspot.agent
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Compiling 64 files for jdk.jconsole
Compiling 5 files for jdk.jsobject
Compiling 8 files for jdk.unsupported.desktop
Compiling 67 files for COMPILE_CREATE_SYMBOLS
Creating ct.sym classes
Creating support/symbols/ct.sym
Compiling 5 files for jdk.internal.vm.compiler.management
Updating support/src.zip //!!!!!之前就是卡在这个地方!!!!!

这是什么东西?

过了很久很久…发现:

它自己悄悄地结束了!

省略…

Note: /home/xxxxxx/openjdk/src/demo/share/jfc/Stylepad/Stylepad.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Compiling 1 files for BUILD_DEMO_TransparentRuler
Updating support/demos/image/jfc/TransparentRuler/src.zip
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /home/xxxxx/openjdk/src/demo/share/jfc/TableExample/TableExample4.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Creating support/demos/image/jfc/CodePointIM/CodePointIM.jar
Creating support/demos/image/jfc/FileChooserDemo/FileChooserDemo.jar
Creating support/demos/image/jfc/SwingSet2/SwingSet2.jar
Creating support/demos/image/jfc/Font2DTest/Font2DTest.jar
Creating support/demos/image/jfc/J2Ddemo/J2Ddemo.jar
Creating support/demos/image/jfc/Metalworks/Metalworks.jar
Creating support/demos/image/jfc/Notepad/Notepad.jar
Creating support/demos/image/jfc/Stylepad/Stylepad.jar
Creating support/demos/image/jfc/SampleTree/SampleTree.jar
Creating support/demos/image/jfc/TableExample/TableExample.jar
Creating support/demos/image/jfc/TransparentRuler/TransparentRuler.jar
Creating jdk image
Creating CDS archive for jdk image
Stopping sjavac server
Finished building target ‘images’ in configuration ‘linux-x86_64-server-release’

注意最后一行!!!!!这就是成功的标志!!!!!

所以到这里就编译成功了!

7.再次配置全局环境变量:

vim /etc/profile

就是把刚才配置的改动一下,第一行换成如下内容:

export JAVA_HOME=home/openjdk/build/linux-x86_64-server-release/jdk;

第三行末尾加上

:$PATH

立即生效命令:

source ./profile

注意这个生效命令不管用,仍旧是报错找不到命令,改为:

source /etc/profile

就可以啦~

8.最终验证,两个命令:

javac -version
java -version

结果:

[root@localhost openjdk]# javac -version
javac 11.0.10
[root@localhost openjdk]# java -version
openjdk version “1.8.0_282”
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

9.完成!

到这里Linux源码编译OpenJDK的任务就结束啦~再见

10.一点点注意(来自参考博客二)

1)最好一开始进入就输入su命令变为root用户,如果之后仍然有权限问题,就加上前缀sudo;

2)注意压缩文件最好通过xftp来传送到虚拟机。直接拉入,文件可能会出现打不开的问题。

3)一些报错可参考博客二;

4)编译openjdk就需要它的上一个版本的jdk来驱动;

5)yum命令中的-y代表的是在下载的过程中需要yes/no的统一为yes,下载后就没什么问题了;

6)在第一次make images失败后需要先make clean后,才能再次make images;

在这里插入图片描述

如果对你有帮助的话不要忘记一键三连噢~
谢谢鸭~

初次编写于2021/1/26日;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值