最近刚开始看《深入理解JAVA虚拟机》这本书。第一章的实践是自己手动编译openjdk7,但书上的步骤都是基于windows的,于是在网上搜了一下linux下编译openjdk的资料:
http://blog.csdn.net/kindazrael/article/details/7266314
http://guoh.org/lifelog/2011/05/compile-openjdk-by-yourself/
这辆篇文章都说的比较详细。其实,最好的文档是openjdk源码包中的README-builds.html,网上的资料基本是对其的翻译+精简。
资料已经那么全了,我就不重复了,主要是记录一些自己碰到的问题。
1. 编译期间会依赖很多其他的包,ubuntu下最简单的方法是sudo apt-get build-dep openjdk-7(文档里些的是sudo aptitude build-dep openjdk-6,但新版的ubuntu貌似已经不自带aptitude,用apt-get会比较方便,另外我把openjdk6改成了openjdk7,编译没出问题,应该两者依赖的包没有什么区别)。这样的话,就不需要挨个下载依赖包编译,也省去了设置一堆环境变量(例如ALT_CUPS_HEADERS_PATH ALT_FREETYPE_LIB_PATH ALT_FREETYPE_HEADERS_PATH)。
我最终的环境变量设置为:
export LANG=C
export ALT_BOOTDIR=$JAVA_HOME
export ALLOW_DOWNLOADS=true
unset CLASSPATH
unset JAVA_HOME
以上设置缺一不可。
2. 另外,如果你的系统版本比较新的话,可能会无法通过hotsopt的系统版本检查,这个时候只需要修改openjdk/hotspot/make/linux下的Makefile文件。注释掉如下几行就OK了。
check_os_version:
#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
# $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif
3. 可能会遇到和"javax/sound/jsoundalsa"相关的一个错误,网上搜了一下这个貌似是openjdk的一个bug,有人提供了补丁
http://mail.openjdk.java.net/pipermail/build-dev/2012-January/005382.html。只需要修改openjdk/jdk/make/javax/sound/jsoundalsa目录下的Makefile文件,找到
LDFLAGS += -lasound
将其替换成
OTHER_LDLIBS += -lasound
即可。
也有说换成EXTRA_LIBS的(
http://blog.csdn.net/yhmhappy2006/article/details/7281710),没有试过,不知道可不可行。
EXTRA_LIBS += -lasound
分享到:
相关推荐
本资料夹包含的内容是关于在Linux环境下编译OpenJDK7的完整过程及可能遇到的问题解决方法。 首先,要编译OpenJDK7,你需要一个Linux环境,因为OpenJDK主要是为类Unix系统设计的。推荐使用Ubuntu或Debian这样的基于...
在介绍如何在Windows 7环境下编译OpenJDK 8源代码之前,有必要了解一些基础知识和前提条件。OpenJDK是Java平台的开源实现,其中包括JVM(Java虚拟机)和Java类库。OpenJDK的源代码使用C和C++编写,支持跨平台编译。...
本文将详细介绍如何在 Ubuntu 16.04.5 LTS 版本下从源码编译 openjdk-7u75 的全过程,并提供必要的截图辅助理解。 #### 二、准备工作 ##### 2.1 安装必要的依赖 在编译 JDK 之前,需要确保系统已安装一系列基础...
在Linux平台上安装OpenJDK 17.0.1是一个常见的任务,尤其对于开发者来说,它是编写、测试和运行Java应用程序的基础。 **1. 下载OpenJDK 17.0.1** 首先,你需要访问OpenJDK的官方网站或者第三方镜像站点下载适用于...
它强调了安装过程的简便性,只需下载并解压,意味着用户无需复杂的编译步骤即可在Linux环境中使用。此外,描述还提到了配置“etc/profile”中的JDK环境变量,这是在Linux系统中设置全局Java环境的常见方法。通过编辑...
内含1.apache-ant-1.9.13-bin.zip 2.jdk-6u45-linux-x64.bin 3.openjdk-7u6-fcs-src-b24-28_aug_2012.zip 4.freetype-2.3.12.tar.gz
标题中的"Linux环境OpenJDK8U-jdk-x64-linux-hotspot-8u372b07.tar.gz"指的是在Linux操作系统环境下使用的OpenJDK 8的更新版本(Update 372,Build 7)的HotSpot虚拟机实现。OpenJDK是一个开源的Java开发工具包,它...
接着,"jdk-7u80-linux-x64.tar.gz"是Oracle JDK的一个旧版本,用于在Linux x64平台上运行。在编译OpenJDK时,有时需要一个已有的JDK作为基础环境,因为OpenJDK编译过程本身就需要JDK。这个文件可以作为编译OpenJDK...
这个压缩包文件名"openjdk7_linux"表明它是专门为Linux系统设计的OpenJDK 7版本。OpenJDK项目由甲骨文公司领导,但社区贡献者众多,其目标是提供一个与Oracle JDK兼容的免费、开放源代码的Java平台。 OpenJDK 7包含...
由于编译 OpenJDK 需要一个现有的 JDK 环境作为引导(bootstrap),因此首先需要下载 JDK 7 并安装。 - **下载地址**: 通过指定的链接下载 JDK 7。 - **步骤**: 完成下载后,解压缩文件 `tar -zxvf jdk-7u80-linux-...
本文将深入探讨“Linux Java7 JDK+OpenJDK”的相关知识点,以及它们在Ubuntu系统上编译Android L/M/N/O版本时的重要性。 首先,Java Development Kit (JDK) 是Java编程语言的核心组件,它包含了开发和运行Java应用...
压缩文件中的"openjdk7Andjdk7"很可能包含了所有必要的源代码和二进制文件,便于在CentOS环境下进行编译和安装。 总的来说,这个压缩包提供了OpenJDK 7的源代码,使得开发者能够在CentOS环境中编译自己的JDK,同时...
在本文中,我们将深入探讨如何在Linux系统上解压并安装OpenJDK 19。首先,让我们了解OpenJDK及其与JDK的关系。 **1. OpenJDK与JDK的区别** OpenJDK(Open Java Development Kit)是一个免费、开源的Java SE(Java ...
总之,OpenJDK-7是Ubuntu环境下进行Java开发的重要工具,其 Deb 包的安装使得在Linux系统中部署和使用Java环境变得简单易行。通过了解和掌握OpenJDK-7的安装、组件以及使用方法,开发者可以更好地利用Java进行软件...
openjdk.txt linux上编译指令
Microsoft Build of OpenJDK 是 OpenJDK 的一种免费分发版,它是开放源代码,任何人都可将其免费部署到任意位置。...上 macOS 的二进制文件,以及适用于 x64 上 Alpine Linux 的 musl libc 编译二进制文件。
《OpenJDK 18:深入理解其在Linux x64平台上的应用》 OpenJDK,全称为Open Source Java Development Kit,是Java开发工具集的开源实现,它提供了Java平台标准版(Java SE)的实现。OpenJDK 18是这个项目的一个重要...
2. **兼容性**:OpenJDK7遵循Java SE(标准版)7的规范,确保与Oracle JDK 7有良好的互操作性,允许开发者在不牺牲兼容性的前提下选择开源选项。 3. **性能优化**:OpenJDK7包含了许多性能改进,比如G1垃圾收集器的...
在Linux系统中,OpenJDK提供了Java运行时环境(JRE)和Java开发工具(JDK),使得开发者可以在Linux操作系统上编写、编译和运行Java代码。 这个特定的版本"8u41-b04"代表了Java 8的更新41(Update 41)和小版本b04...
有了 OpenJDK,开发者可以在 aarch64 Linux 上进行 Java 应用的开发、编译、测试和部署。`javac` 命令用于编译 Java 源代码,`jar` 工具用于创建和管理 JAR 文件,`javadoc` 用于生成文档,而 `jdb` 是 Java 的调试...