Java编译Ubuntu依赖如何安装
在 Ubuntu 上安装 Ja va 编译所需依赖 一、区分两类编译场景 动手之前,咱们得先搞清楚一件事:你打算编译什么?这直接决定了你需要准备哪些“家伙事儿”。 编译普通 Ja va 项目:这事儿相对简单。你只需要一个 JDK,它包含了编译器 ja vac 和运行时环境 ja va,就够了。 从源
在 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。
同类文章
AWS RDS 数据库配置入门与基础操作指南
本文介绍了AWSRDS的基本概念与核心价值,即提供托管式关系数据库服务,简化运维。详细阐述了创建RDS实例的关键配置步骤,包括引擎选择、实例规格、存储与网络设置。最后,指导读者如何通过多种方式安全连接至数据库实例,并开始进行数据操作,为后续应用开发奠定基础。
PHP MVC中AJAX请求无法调用控制器方法的原因与解决方案
PHPMVC中AJAX请求返回整页HTML的常见原因是控制器方法未正确输出响应或未终止执行,导致框架渲染视图。解决方法是在控制器中设置JSON响应头、输出数据后调用exit()明确终止,同时前端使用小写url和dataType: "json "。
Go语言手动构造rsa.PublicKey:正确初始化大整数模数N完整指南
手动构造RSA公钥时,模数N为*big Int类型,不能直接使用超长十进制字面量,需通过SetString或UnmarshalText方法解析字符串。公钥指数E可直接赋值,推荐65537。生产环境应使用rsa GenerateKey生成密钥对,避免手动构造引发的安全和格式错误。
Go语言实现HTTP定时轮询监控多URL响应时间与状态检测
使用Go语言实现HTTP定时轮询监控,通过按行分割与Tab解析URL列表,避免闭包陷阱和nil指针,每个URL启动独立ticker安全并发请求,并配置超时控制与资源关闭,确保响应时间与状态码准确检测。
Tkinter中Label标签在主循环动态更新的正确方法
在Tkinter中正确动态更新标签的方法:将标签组件的textvariable参数绑定到一个StringVar变量,然后通过调用该变量的 set()方法更新其值,界面会自动刷新。这样避免直接修改text属性或调用update()。此做法实现数据与界面的解耦,代码更简洁,响应更及时,避免手动同步的闪烁,推荐做法。
- 热门数据榜
相关攻略
2026-07-10 06:41
2026-07-10 06:40
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

