搜索
首页运维linux运维Linux环境下编译JDK的详细步骤

本篇文章给大家带来的内容是关于Linux环境下编译JDK的详细步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

环境准备

  1. 操作系统,ubuntu-14.04.6-desktop-amd64.iso,下载地址:http://59.80.44.100/releases.ubuntu.com/14.04/ubuntu-14.04.6-desktop-amd64.iso。
  2. Open JDK源码,openjdk-7u75-src-b13-18_dec_2014.zip,下载地址:https://download.java.net/openjdk/jdk7u75/ri/openjdk-7u75-src-b13-18_dec_2014.zip
  3. Bootstrap JDK,使用Oracle JDK:jdk-6u45-linux-x64.bin,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

编译步骤

1. 安装JDK编译依赖,执行命令:

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

2. 解压Open JDK。

unzip openjdk-7u75-src-b13-18_dec_2014.zip

3. 安装Bootstrap JDK。

./jdk-6u45-linux-x64.bin

4. 在Open JDK目录下新建shell脚本:build.sh,5d0b07a5c8049182d0028f9a44865085/build.sh,脚本内容如下:

#!/bin/bash 
export LANG=C 
export ALT_BOOTDIR=/home/javon/jdk/jdk1.6.0_45

#允许自动下载依赖包 
export ALLOW_DOWNLOADS=true#使用预编译头文件,以提升便以速度 
export USE_PRECOMPILED_HEADER=true#要编译的内容 
export BUILD_LANGTOOLS=true export BUILD_JAXP=true export BUILD_JAXWS=true export BUILD_CORBA=true export BUILD_HOSTPOT=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=/home/javon/jdk/openjdk-7-src/build

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

说明:ALT_BOOTDIR为Bootstrap JDK安装目录。
   5. 修改Open JDK源码中的一个文件,5d0b07a5c8049182d0028f9a44865085/jdk/src/share/classes/java/util/CurrencyData.properties,要做的是把文件中以下的时间改为10年内的一个时间:

AZ=AZM;2015-12-31-20-00-00;AZN
MZ=MZM;2016-06-30-22-00-00;MZN
RO=ROL;2015-06-30-21-00-00;RON
TR=TRL;2014-12-31-22-00-00;TRY
VE=VEB;2018-01-01-04-00-00;VEF

6. 执行编译脚本

#cd <OpenJDK源码目录>cd /home/javon/jdk/openjdk/sh build.sh

7. 编译完成后,ALT_OUTPUTDIR路径下得到如下目录,

其中,j2sdk-image目录下存放的就是整个JDK的完整编译结果。我们进入整个目录下,键入“java -version”,会得到如下结果:

编译过程中遇到的问题

1. 操作系统版本不支持,This OS is not supported。

   解决方法:修改文件5d0b07a5c8049182d0028f9a44865085/hotspot/make/linux/MakeFile,SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%后添加4%,修改后内容为:

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%

 

以上是Linux环境下编译JDK的详细步骤的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:博客园。如有侵权,请联系admin@php.cn删除
使用维护模式:故障排除和修复Linux使用维护模式:故障排除和修复LinuxApr 29, 2025 am 12:28 AM

维护模式是Linux系统中通过单用户模式或救援模式进入的特殊运行级别,用于系统维护和修复。1.进入维护模式使用命令“sudosystemctlisolaterescue.target”。2.在维护模式中,可以检查并修复文件系统,使用命令“fsck/dev/sda1”。3.高级用法包括重置root用户密码,需挂载文件系统为读写模式并编辑密码文件。

Linux维护模式:了解目的Linux维护模式:了解目的Apr 28, 2025 am 12:01 AM

维护模式用于系统维护和修复,允许管理员在简化环境中工作。1.系统修复:修复损坏的文件系统和启动加载器。2.密码重置:重置root用户密码。3.软件包管理:安装、更新或删除软件包。通过修改GRUB配置或使用特定键进入维护模式,执行维护任务后可安全退出。

Linux操作:网络和网络配置Linux操作:网络和网络配置Apr 27, 2025 am 12:09 AM

Linux网络配置可以通过以下步骤完成:1.配置网络接口,使用ip命令临时设置或编辑配置文件持久化设置。2.设置静态IP,适合需要固定IP的设备。3.管理防火墙,使用iptables或firewalld工具来控制网络流量。

Linux中的维护模式:系统管理员指南Linux中的维护模式:系统管理员指南Apr 26, 2025 am 12:20 AM

维护模式在Linux系统管理中扮演关键角色,帮助进行系统修复、升级和配置变更。1.进入维护模式可以通过GRUB菜单选择或使用命令“sudosystemctlisolaterescue.target”。2.在维护模式下,可以执行文件系统修复和系统更新等操作。3.高级用法包括重置root密码等任务。4.常见错误如无法进入维护模式或挂载文件系统,可通过检查GRUB配置和使用fsck命令修复。

Linux中的维护模式:何时以及为什么使用它Linux中的维护模式:何时以及为什么使用它Apr 25, 2025 am 12:15 AM

使用Linux维护模式的时机和原因:1)系统启动问题时,2)进行重大系统更新或升级时,3)执行文件系统维护时。维护模式提供安全、控制的环境,确保操作的安全性和效率,减少对用户的影响,并增强系统的安全性。

Linux:基本命令和操作Linux:基本命令和操作Apr 24, 2025 am 12:20 AM

Linux中不可或缺的命令包括:1.ls:列出目录内容;2.cd:改变工作目录;3.mkdir:创建新目录;4.rm:删除文件或目录;5.cp:复制文件或目录;6.mv:移动或重命名文件或目录。这些命令通过与内核交互执行操作,帮助用户高效管理文件和系统。

Linux操作:管理文件,目录和权限Linux操作:管理文件,目录和权限Apr 23, 2025 am 12:19 AM

在Linux中,文件和目录管理使用ls、cd、mkdir、rm、cp、mv命令,权限管理使用chmod、chown、chgrp命令。1.文件和目录管理命令如ls-l列出详细信息,mkdir-p递归创建目录。2.权限管理命令如chmod755file设置文件权限,chownuserfile改变文件所有者,chgrpgroupfile改变文件所属组。这些命令基于文件系统结构和用户、组系统,通过系统调用和元数据实现操作和控制。

Linux中的维护模式是什么?解释了Linux中的维护模式是什么?解释了Apr 22, 2025 am 12:06 AM

MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。