1. 下载源码
下载页面:
http://hg.openjdk.java.net/jdk/jdk12/
点击如下的zip进行直接下载压缩包,在不科学上网的情况下比较快。
如果科学上网使用,在Linux操作系统下,使用
hg clone https:// hg.openjdk.java.net/jdk/jdk12
如果没有安装mercurial的话会有提示,根据提示输入即可。
2. 构建编译环境
在Ubuntu下构建使用
- 获取gcc
sudo apt-get install build-esential
获取gcc
使用gcc -v
查看自己的gcc版本,如果gcc版本小于4.8则应该重新下载一个新的版本。 - 安装其他依赖库
工具 | 库名称 | 安装命令 |
---|---|---|
FreeType | ||
CUPS | ||
X11 | ||
ALSA | ||
libffi | ||
Autoconf |
那些安装命令如下,可以直接复制粘贴,或者写一个.sh文件。
注意:看着安装,因为可能会有权限的赋予,需要用户操作。
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
- 获取jdk11以上编译好的版本。
虽然jdk的源码有c和c++文件,但是最多仍旧是java文件,所以需要jdk进行编译。
方法一:
- 使用
sudo apt-get install openjdk-11-jdk
获取jdk11版本。 - 在命令行模式下,输入
java -version
判断是否是11以上版本。如果不是,
或者出错,就需要使用配置java的环境变量。 - 在命令行模式下输入
vim /etc/profile
进入如下的配置文件
- 在文件末尾配置
export JAVA_HOME = "你的jdk11的安装路径"
export PATH = $JAVA_HOME/bin:$PATH
jdk的使用sudo apt-get的安装路径一般在share里面。具体可以使用which java进行查看。使用whereis java找到的是java的不对,具体什么原因请看这里。
3. 编译环境检查
在下载的openjdk12根目录下使用bash configure
进行编译环境的检查。如果出错,根据提示进行修改即可。
当然如果出现的是jdk找不到,这种错误,使用
--with-boot-jkd = jdk11的根目录
进行解决。就不要重新下载jdk11了,实在是有点慢。
4.编译
最后使用make
进行编译,成功后如图1,然后进入build/配置名称/jdk/bin目录下输入./java -version
就可以看到是12的版本(如图2)。