Ubuntu系统编译Java程序所需依赖库详解
Ubuntu 编译 OpenJDK 的依赖清单与版本要点
想在 Ubuntu 上成功编译 OpenJDK,准备工作是关键。这活儿说难不难,但依赖包和版本要是没搞对,后续的编译过程就会麻烦不断。下面这份清单,帮你把通用依赖和不同版本的差异化要点都理清楚了,照着来能省不少事儿。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一、通用基础依赖
无论你编译哪个版本的 OpenJDK,下面这些基础依赖都是绕不开的。它们构成了编译的底层工具链,并支撑了 HotSpot 虚拟机、图形界面(AWT)、字体渲染和打印等核心模块。
- 构建工具与基础编译链:build-essential、gcc、g++、make、autoconf、zip。这是编译工作的“脚手架”。
- 字体与图形渲染:libfreetype6-dev、libfontconfig1-dev。没有它们,Ja va的字体显示会出问题。
- 打印系统:libcups2-dev。提供打印服务的底层支持。
- X11 相关(窗口系统、渲染、测试等):libx11-dev、libxext-dev、libxrender-dev、libxrandr-dev、libxtst-dev、libxt-dev。这一系列库负责图形界面的显示和交互。
- 音频:libasound2-dev。让Ja va程序能“发声”。
- 外部函数接口与兼容性:libffi-dev。用于本地接口调用。
- 源码获取工具:OpenJDK 源码托管在 Mercurial 仓库,所以需要安装
mercurial。
把这些通用依赖装齐,就为编译打下了最坚实的基础。
二、按 OpenJDK 版本的差异化要点
不同版本的 OpenJDK 对编译环境和引导JDK(Bootstrap JDK)的要求各不相同,这是最容易踩坑的地方。务必对号入座。
- OpenJDK 7
- Bootstrap JDK:必须使用 JDK 7 本身。用 JDK 8 来编译 JDK 7 是行不通的。
- 构建工具:建议使用 Ant 1.9.x 版本。因为 Ant 1.10 及以上版本需要 JDK 8 支持,与 JDK 7 不兼容。
- 其他常见依赖:gawk、m4、ca-certificates、ca-certificates-ja va 这些工具和证书包也常常需要。
- OpenJDK 8
- Bootstrap JDK:需要 JDK 7 作为引导。
- 常见依赖:除了通用依赖外,要特别确保 libx11-dev、libxext-dev、libxrender-dev、libxtst-dev、libxt-dev、libcups2-dev、libfreetype6-dev、libasound2-dev 这些库已安装。
- OpenJDK 11/12/16 等更高版本
- Bootstrap JDK:遵循“N-1”原则。即编译 JDK 12 需要用 JDK 11 作为引导,编译 JDK 16 则需要 JDK 15,以此类推。
- 常见依赖:在通用依赖的基础上,再次核对 libfreetype6-dev、libfontconfig1-dev、libcups2-dev、X11 系列库、libasound2-dev、libffi-dev、autoconf 是否都已就位。
这些版本差异是无数实践经验的总结,编译前仔细核对能避免大部分基础错误。
三、一键安装示例命令
为了操作方便,这里给出几条可以直接在终端执行的命令。你可以根据自己的目标版本进行选择。
- Ubuntu 18.04/20.04/22.04(通用,适合 JDK 11+)
sudo apt-get updatesudo apt-get install -y build-essential autoconf zip libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libfontconfig1-dev libasound2-dev libffi-dev mercurial
- 如需编译 OpenJDK 7,在上述命令安装的基础上,还需要补充:
gawk m4 ant-1.9.x ca-certificates ca-certificates-ja va。 - 如需编译 OpenJDK 8,最关键的一步是确保已安装 JDK 7 作为 Bootstrap JDK。可以通过
apt安装openjdk-7-jdk,或者手动下载解压后正确设置JA VA_HOME环境变量。
四、配置与排错要点
依赖装好了,只是第一步。接下来的配置(configure)阶段才是真正的考验。这里有几个关键参数和常见错误的解决方法。
- 使用 configure 明确依赖路径
- FreeType 库的路径经常需要手动指定,命令示例如下:
bash configure --with-freetype-include=/usr/include/freetype2 --with-freetype-lib=/usr/lib/x86_64-linux-gnu
- FreeType 库的路径经常需要手动指定,命令示例如下:
- 指定 Bootstrap JDK(示例)
- 明确告诉配置脚本引导JDK的位置:
bash configure --with-boot-jdk=/usr/lib/jvm/ja va-11-openjdk-amd64
- 明确告诉配置脚本引导JDK的位置:
- 常见报错与处理
- “freetype not found” → 首先确认
libfreetype6-dev已安装,然后在configure命令中正确设置--with-freetype-include和--with-freetype-lib路径。 - “fontconfig missing” → 安装
libfontconfig1-dev包。 - “X11/xtst/xt missing” → 分别安装对应的
libx11-dev、libxtst-dev、libxt-dev等开发包。 - “configure: error: Could not find a valid Boot JDK” → 检查是否安装了符合“N-1”原则的正确JDK版本,并通过
--with-boot-jdk参数指定其绝对路径。 - “Ant version too new for JDK 7” → 编译 JDK 7 时,务必使用 Ant 1.9.x 版本,不要用更新的。
- “sanity check failed” → 这类综合性错误需要系统排查:检查
LANG等环境变量是否设置正确(建议设为C.UTF-8);清理旧的JA VA_HOME或CLASSPATH设置;最后再整体确认一遍所有依赖是否安装齐全。
- “freetype not found” → 首先确认
上面这些配置参数和排错思路,都是从多个版本的实际编译记录中提炼出来的,遇到问题不妨先从这里找找答案。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
PHP环境搭建与基础入门教程
WAMP安装配置的核心:让PHP与Apache、MySQL协同工作 搭建WAMP环境,技术上的重点其实就集中在两个“绑定”上:一是让PHP能在Apache服务器里跑起来,二是让PHP能顺利连接MySQL数据库。至于Apache本身的安装,基本上就是一路“Next”下去,没有太多技术门槛。如果你在安装
如何查看当前PHP版本与配置文件所在目录
当我们在命令行上使用php命令时 在命令行里敲下php命令,偶尔会遇到一些报错或者意料之外的情况,这很正常。这时候,第一个要确认的是什么?往往是当前环境使用的PHP版本。 如果你的系统里恰好安装了多个PHP版本,搞清楚当前命令行调用的是哪一个,就成了关键的第一步。怎么做呢?很简单,使用php -ve
PHP教程详解Java扩展功能与使用方法
Ja va的易扩展性是它极其的令人兴奋的用途之一 Ja va的模块化特性,是其强大扩展能力的核心所在。掌握这项技能,意味着你能为几乎所有可用的Ja va类库增添新的活力。为了帮你打好基础,本文将系统地介绍环境配置,并辅以PHP与Ja va协同工作的代码示例。 Windows下安装 接下来的配置环境基
PHP7 Yum源安装与配置最新教程
yum源默认的版本太低了,手动安装有一些麻烦,想采用Yum更新安装的可以使用下面的方案: 很多朋友都遇到过这个问题:系统自带的yum源里,PHP版本往往比较旧。手动编译安装呢,步骤又稍显繁琐。如果你希望继续借助yum的便捷性来管理,那么下面这套替换方案就值得一试了。 1 检查当前安装的PHP包 动
PHP系统常量详解与常用预定义常量指南
系统常量:PHP系统帮助用户定义的常量,用户可以直接使用 在PHP的世界里,系统常量就像是预先为你准备好的工具箱,开箱即用,无需额外定义。它们由PHP核心或扩展提供,直接反映了当前运行环境的关键信息。 常用的几个系统常量 下面这几个常量,可以说是开发者日常接触频率最高的几位“老朋友”了: PHP_V
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

