安装jre
sudo yum install java-1.8.0-openjdk
安装jdk
sudo yum install java-1.8.0-openjdk-devel
安装成功后:
[root@izuf6ea4rfo45y44oj74jhz /]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@izuf6ea4rfo45y44oj74jhz /]# javac -version
javac 1.8.0_191
安装mercurial
hg是下载openjdk的源码要用的工具
下载openjdk8的源码
这步下载很麻烦,如果你网速很慢,那就要很久很久(建议:如果网速不行,就到网速好的地方,要不然会疯掉)
hg clone http://hg.openjdk./jdk8u/jdk8u openjdk8
#进入opnjdk8文件夹
sh get_source.sh
注意:你以为那个get_source.sh会成功把所有的源码都拉下来,我搞了好久都没拉全。需要执行很多次;至少下面的那个jdk我就好久才拉下来。
安装依赖插件
yum install alsa-lib-devel cups-devel libX* gcc gcc-c++ freetype-devel libstdc++-static ant make
说明:到了这步其实依赖的东西很多,你一时无法找全,到下一步执行configure命令配置提示再去完善也可以,很舒服。
编译配置
chmod +x configure
./configure --enable-debug
说明:首先需要加上执行权限,你拉下来的源代码中configure文件是没有执行的权限的。然后你执行configure文件会出现提示你安装依赖插件,譬如:
只需要把后面拷贝下来执行安装,然后再执行configure文件,直到:
说明:红框中的警告就是让你clean下目录,让新配置覆盖旧的配置。
编译
说明:我直接执行make文件,并没有成功,出现错误。
[root@izuf6ea4rfo45y44oj74jhz openjdk8]# make
No CONF given, but more than one configuration found in /openjdk8//build.
Available configurations:
* linux-x86_64-normal-server-fastdebug
* linux-x86_64-normal-server-release
Please retry building with CONF=<config pattern> (or SPEC=<specfile>)
Makefile:55: *** Cannot continue. Stop.
解决办法:make文件执行的时候,将配置也一起带上作为参数。
make CONF=linux-x86_64-normal-server-fastdebug
编译成功
HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld openJDK");
}
}
源码JDK运行:
[root@izuf6ea4rfo45y44oj74jhz workspace]# ../build/linux-x86_64-normal-server-fastdebug/jdk/bin/java HelloWorld
HelloWorld openJDK
已安装的运行:
[root@izuf6ea4rfo45y44oj74jhz workspace]# java HelloWorld
HelloWorld openJDK
给自己的话
之前看了很多java虚拟机相关的书,但是始终印象不深,感觉像在背理论,而且我也不知道他说的对不对,终于可以编译openjdk了,后面的很多任务,主要就是通过实践去验证总结了。当下只是刚刚迈出的第一步。
|