OpenJDK 7的编译

本文介绍了在Windows 10子系统中编译OpenJDK 7源码的详细过程,包括源码获取、环境搭建、依赖库安装以及遇到的问题与解决方法。同时,提到了相关命令行快捷方式、Linux计算指令和图形界面安装等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、java.net不知为何关闭了openJDK7的源码包的下载页面;使用Mercurial的下载速度又极慢。最后只好在百度网盘上找到了OpenJDK7源码,在优快云上找到了OpenJDK8源码

2、编译环境搭建:sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant openjdk-8-jdk。

3、其中的libmotif3 需要额外下载,再在该目录下执行“sudo dpkg -i libmotif3_2.3.4-8ubuntu1_amd64.deb” 实现安装。

4、windows10子系统相关配置:

      (1)apt-get安装好的文件:文档一般在 /usr/share;可执行文件 /usr/bin;配置文件 /etc;lib文件 /usr/lib。

      (2)ubuntu下在vim的基础上安装gvim:“sudo apt-get install vim-gtk”(但是windows10子系统不能用)

      (3)win子系统下vimrc配置以后鼠标右键的粘贴功能转移至“shift+鼠标右键”。

      (4)win子系统下,/etc/vim/下需要手动添加colors文件夹,该文件夹下有“desert.vim”等颜色配置文件。

      (5)如何装上vim插件??https://blog.youkuaiyun.com/gatieme/article/details/43889489

      (6)查看Java安装目录的方法:查看JDK版本:java -version;查看java执行路径:which java;查看JAVA_HOME路径:echo $JAVA_HOME;插卡PATH内容:echo $PATH

      (7)linux命令行快捷方式http://blog.51cto.com/cxj632840815/1313260

      (8)真实的vim所在的执行目录:“/usr/share/vim/vim74”。语句“call pathogen#infect()”应放在vimrc的最后一行。

      (9) linux下可用于计算的指令:https://blog.youkuaiyun.com/linco_gp/article/details/4517945

      (10)更换apt-get的源https://blog.youkuaiyun.com/lu900618/article/details/74955065

      (11)安装图形化界面https://blog.youkuaiyun.com/u011138447/article/details/78262369

      (12)图形界面下取消win键功能http://www.linuxdiyf.com/linux/14517.html

5、首先跳转到openJDK8源代码的解压目录,先执行"./configure",在执行"build.sh"

      我所配置的build.sh内容:

#!/bin/bash

# 语言选项,若不设置则会在编译好后出现一个HashTable的NPE错
export LANG=C
# Bootstrap JDK的安装路径
export ALT_BOOTDIR=/usr/lib/jvm/java-8-openjdk-amd64/

#允许自动下载依赖包
export ALLOW_DOWNLOADS=true

# 并行编译线程数,设置为和CPU内核数一样即可
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4

#使用预编译头文件,以提升便以速度
export USE_PRECOMPILED_HEADER=true

#要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true

#要编译的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug

#避免javaws和浏览器Java插件等的build
BUILD_DEPLOY=false

#不build安装包
BUILD_INSTALL=false

#设置存放编译结果的目录
export ALT_OUTPUTDIR=/mnt/d/Workspaces/compileOpenJDK/openjdk7/build

unset CLASSPATH
unset JAVA_HOME

# 这个环境变量是make sanity建议消除的
unset LD_LIBRARY_PATH

make sanity
make 2>&1 | tee $ALT_OUTPUTDIR/build.log

PS:OpenJDK8可以成功,但OpenJDK7老报错

6、问题处理

  1. OS版本不支持

    This OS is not supported: Linux 4.4.0-43-Microsoft #1-Microsoft x86_64 x86_64 x86_64 GNU/Linux

    解决办法:

       修改文件 ./hotspot/make/linux/Makefile
       修改 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 为 
       SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3% 4%
  2. 参数不兼容

    recipe for target 'ad_stuff' failed

    解决办法:

    修改文件 ./hotspot/make/linux/makefiles/adjust-mflags.sh
    删除第67行: s/-\([^][^]*\)j/-\1-j/

7、编译完成后:

进入路径openJdk8/build/build/linux-x86_64-normal-server-release/jdk/bin,执行“./java -version”,给出以下结果:

openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-root_2018_08_16_22_14-b00)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)

8、用NetBeans编译HotSpot:http://www.cnblogs.com/zyx1314/p/5638596.html。该页面中的Pre-Build Action “make”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值