Java编译Ubuntu依赖如何安装
在 Ubuntu 上安装 Ja va 编译所需依赖

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一、区分两类编译场景
动手之前,咱们得先搞清楚一件事:你打算编译什么?这直接决定了你需要准备哪些“家伙事儿”。
- 编译普通 Ja va 项目:这事儿相对简单。你只需要一个 JDK,它包含了编译器
ja vac和运行时环境ja va,就够了。 - 从源码构建 OpenJDK:这就复杂多了,堪称“硬核操作”。除了 JDK,你还得准备一堆系统依赖库,比如 FreeType、CUPS、X11 等等。更关键的是,你还需要一个“引导 JDK”——通常要求比你要构建的目标版本低一个主版本号。
二、编译普通 Ja va 项目的依赖安装
对于大多数开发者来说,第一个场景才是日常。下面咱们就按步骤来,保证你快速搞定。
- 更新索引并安装 JDK:以目前主流的 OpenJDK 17 为例(当然,你也可以换成 8、11 或 21 等版本)。
- 打开终端,执行这条命令:
sudo apt update && sudo apt install -y openjdk-17-jdk
- 打开终端,执行这条命令:
- 验证安装:装完可不能凭感觉,得验明正身。
- 分别运行
ja va -version和ja vac -version,看看版本信息是否正常输出。
- 分别运行
- 可选:配置 JA VA_HOME:有些工具依赖这个环境变量,如果系统没自动设置,咱们就手动来。
- 先找到 JDK 的安装路径:
readlink -f “$(which ja va)”。它通常藏在/usr/lib/jvm/目录下。 - 然后将其写入环境变量:
echo ‘export JA VA_HOME=/usr/lib/jvm/ja va-17-openjdk-amd64’ >> ~/.bashrc && source ~/.bashrc
- 先找到 JDK 的安装路径:
- 可选:安装构建工具:现代 Ja va 项目离不开 Ma ven 或 Gradle。
- 安装命令很简单:
sudo apt install -y ma ven或sudo apt install -y gradle。 - 同样,用
mvn -version或gradle -version验证一下。
- 安装命令很简单:
三、从源码构建 OpenJDK 的依赖安装
如果你想深入 JVM 内部,或者有定制化需求,从源码构建 OpenJDK 是必经之路。这个过程就像搭一个精密仪器,缺一个零件都不行。
- 安装基础编译工具与依赖库:这是最繁琐但必须的一步。以下命令适用于 Ubuntu 20.04/22.04 等常见版本。
- 准备好,这是一条长长的命令:
sudo apt update && sudo apt install -y build-essential autoconf zip libfreetype6-dev libcups2-dev libfontconfig1-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev libasound2-dev libffi-dev
- 准备好,这是一条长长的命令:
- 准备 Bootstrap JDK:这是构建过程的“起点”。记住一个原则:用它来构建比它高一个主版本的 JDK。比如:
- 要构建 OpenJDK 12,你需要 JDK 11:
sudo apt install -y openjdk-11-jdk - 要构建 OpenJDK 16,你可能需要 JDK 15。务必根据目标版本灵活选择。
- 要构建 OpenJDK 12,你需要 JDK 11:
- 获取源码并配置与编译:环境备齐,就可以开工了。以构建 OpenJDK 12 为例:
- 配置构建参数:
bash configure --enable-debug --with-jvm-variants=server - 开始编译(
nproc会自动检测你的 CPU 核心数,全力编译):make -j"$(nproc)"
- 配置构建参数:
- 常见排错要点:这条路可能不会一帆风顺,几个常见的坑帮你标出来:
- 如果配置时提示缺少
fontconfig,别忘了安装libfontconfig1-dev。 - 如果你在 VMware 的共享文件夹里编译,可能会遇到无法创建符号链接的错误。解决办法是把源码移到本地的 ext4 分区再编译。
- 如果 gcc/g++ 版本不兼容,可能需要安装特定版本(比如 gcc-7)并更新软链接。
- 如果配置时提示缺少
四、一键安装脚本示例
为了方便,这里提供两条整合好的命令。你可以直接复制执行,但务必理解每条命令在做什么。
- 普通 Ja va 项目(安装 OpenJDK 17):
sudo apt update && sudo apt install -y openjdk-17-jdk && ja va -version && ja vac -version
- OpenJDK 12 构建环境(含 Bootstrap JDK 11 与全部依赖):
sudo apt update && sudo apt install -y build-essential autoconf zip libfreetype6-dev libcups2-dev libfontconfig1-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev libasound2-dev libffi-dev openjdk-11-jdk && ja va -version。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何在 Go 语言中创建三维数组
如何在 Go 语言中创建三维数组 本文详细讲解在 Go 语言中如何正确初始化并返回一个指定尺寸的三维指针切片(例如 [][][]*tile),内容涵盖分层使用 make 函数的关键步骤、常见错误与规避方法,并提供可直接运行的完整代码示例。 在 Go 语言编程实践中,处理三维数据结构,例如一个三维的指
PHP怎样处理中文乱码问题_PHP处理中文乱码问题方法【编码】
PHP中文乱码问题终极解决方案:四层编码统一法详解 彻底解决PHP中文乱码,核心在于实现“四层编码统一”。问题根源往往不是单一错误,而是文件编码、HTTP传输、数据库连接、HTML解析这四个关键环节的编码设置不一致。只要其中一层仍使用GBK或ISO-8859-1等非UTF-8编码,即便其他三层都正确
Go 中嵌入第三方结构体时实现私有化的方法
Go 中嵌入第三方结构体时实现私有化的方法 在 Go 中,可通过类型别名(type alias)为外部包的结构体创建未导出别名,再嵌入该别名,从而隐藏原始类型字段,实现语义上的“私有嵌入”,兼顾复用性与封装性。 在 Go 语言里,结构体嵌入(embedding)是个强大的特性,但它有个“小脾气”:它
Pandas读取外部数据的几种实现方法
Pandas 支持读取几乎所有常见的外部数据格式,核心是 pd read_* 系列函数,以下是最常用的格式及用法: 处理数据的第一步,往往是把外部数据“搬”进来。Pandas 在这方面堪称全能选手,其核心的 pd read_* 系列函数几乎覆盖了所有常见的数据源。接下来,我们就逐一拆解这些最常用的读
C#怎么创建Dapr微服务_C# Dapr分布式应用运行时方法教程【高级】
C 构建Dapr微服务的核心是标准ASP NET Core Web API + Dapr SDK封装 + sidecar启动;关键在于正确配置AppID、显式路由、禁用HTTPS重定向、启用CORS,并逐层验证sidecar健康与服务连通性。 开门见山,直接点明核心:使用C 创建Dapr微服务,其精
- 日榜
- 周榜
- 月榜
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
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

