自己编译openJDK

来源:互联网 发布:漯河淘宝培训 编辑:程序博客网 时间:2024/05/24 06:06
1.环境:Centos6.9
openJDK:openjdk-7u75-src-b13-18_dec_2014.zip
下载地址:
http://jdk.java.net/java-se-ri/7
BootJDK:jdk-6u45-linux-x64.bin
下载地址:
http://www.Oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u26-oth-JPR


必备软件包:
yum -y install alsa-lib-devel
yum -y install cups-devel
yum -y install libXi-devel
yum -y install gcc gcc-c++
yum -y install libX*


上传或下载相关文件到/application/tools
mkdir -p /application/tools
cd /application/tools


freetype-2.8.tar.gz
下载地址:http://sourceforge.net/projects/freetype/files/freetype2/
Ant:apache-ant-1.7.1-bin.tar.gz
下载地址:http://archive.apache.org/dist/ant/binaries/  


编译安装freeType
tar -zxf freetype-2.8.tar.gz
cd freetype-2.8
./configure
make
make install


安装BootJDK
bin文件,添加可执行权限
#chmod +x jdk-6u45-linux-x64.bin
#./jdk-6u45-linux-x64.bin
设置环境变量
vim /etc/profile


#SET java environment
JAVA_HOME=/application/java/jdk1.6.0_45
export JRE_HOME=/application/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


安装ant:
cd /application/tools
tar -xzf apache-ant-1.7.1-bin.tar.gz
ln -s /application/tools/apache-ant-1.7.1/bin/ant /usr/bin/ant


检查BootJDK和Ant
#java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
#ant
Buildfile: build.xml does not exist!
Build failed


2.配置变量:
可以直接配置在/etc/profile
配置完执行:#source /etc/profile  使配置生效
unset CLASSPATH
unset JAVA_HOME
export LANG=C
export ALT_BOOTDIR=/application/java/jdk1.6.0_45
export ANT_HOME=/application/tools/apache-ant-1.7.1
export ALT_FREETYPE_LIB_PATH=/usr/local/lib
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/freetype2


也可以在openjdk解压根目录下创建build.sh脚本
#sudo vim build.sh
执行配置脚本
#sudo sh build.sh


(提前修改CurrencyData.properties,避免编译时报错!!!)
java.lang.RuntimeException: time is more than 10 years from present: 1120165200000    
修改源码解压目录下CurrencyData.properties文件
<\openjdk解压目录>\jdk\src\share\classes\java\util\CurrencyData.properties
修改以下内容:
AZ=AZM;2005-12-31-20-00-00;AZN   -- 108
MZ=MZM;2006-06-30-22-00-00;MZN   -- 381
RO=ROL;2005-06-30-21-00-00;RON   -- 443
TR=TRL;2004-12-31-22-00-00;TRY   -- 535
VE=VEB;2008-01-01-04-00-00;VEF   -- 561


也可以修改".bash_profile"文件,此文件为隐藏文件,
Linux中含有两个重要的文件/etc/profile和$HOME/.bash_profile,每当系统登录时都要读取这两个文件,用来初始化系统所用到的变量,其中/etc/profile是超级用户所用,$HOME/.bash_profile是每个用户自己独立的,可以修改该文件来设置一些变量。
cd /root
#ll -a 此命令用来查看隐藏文件。
#vim  ~/.bash_profile
:wq 或 :wq!
使变量生效
#source  ~/.bash_profile
3.检查环境是否配置OK(可用性测试) 与编译jdk源码
在<openjdk>解压根目录下:
#make sanity
待出现
Sanity check passed.
表明测试通过,可进行编译。
#make all
等待完成,大概需要30分钟,具体视个人机器硬件配置。
查看成果:
# /application/tools/openjdk/build/linux-amd64/bin/java -version
openjdk version "1.7.0-internal-debug"
OpenJDK Runtime Environment (build 1.7.0-internal-debug-za_2017_11_09_18_20-b00)
OpenJDK 64-Bit Server VM (build 24.75-b04-jvmg, mixed mode)
测试自己的JDK
#vim Hello.java
public class Hello{
   public static void main(String[] args){
      System.out.println("Hello World!");  
   }
}
编译为字节码
# /application/tools/openjdk/build/linux-amd64/bin/javac /application/Hello.java
执行字节码(执行时必须在字节码文件所在目录)
# /application/tools/openjdk/build/linux-amd64/bin/java Hello
输出:Hello World!


编译或执行字节码时都会在hotspot.log中输出打印日志。
原创粉丝点击