Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何在Ubuntu中配置Java和javac命令_创想鸟

如何在Ubuntu中配置Java和javac命令

首先安装JDK确保javac可用,再用update-alternatives管理多版本,最后设置JAVA_HOME提升工具兼容性与环境一致性。

如何在ubuntu中配置java和javac命令

在Ubuntu系统上配置Java和

javac

命令,通常意味着你需要确保Java开发工具包(JDK)已正确安装,并且系统的环境变量能找到它们。多数情况下,Ubuntu会预装OpenJDK的运行时环境(JRE),但开发所需的

javac

命令则需要完整的JDK。核心在于安装JDK、使用

update-alternatives

管理版本,以及设置

JAVA_HOME

环境变量。

解决方案

要在Ubuntu中配置Java和

javac

命令,我们需要经历几个步骤,确保系统能正确识别和使用你想要的JDK版本。

1. 检查当前Java状态打开终端,输入以下命令:

java -versionjavac -version

如果

java -version

显示版本信息,但

javac -version

提示“命令未找到”或显示不同版本,那么你可能只安装了JRE,或者

javac

没有正确指向JDK。

2. 安装OpenJDK JDK如果你还没有安装JDK,或者需要特定版本的JDK,可以使用

apt

进行安装。先更新包列表:

sudo apt update

然后安装你需要的JDK版本。例如,安装OpenJDK 11 JDK:

立即学习“Java免费学习笔记(深入)”;

sudo apt install openjdk-11-jdk

如果你需要其他版本,比如OpenJDK 8或OpenJDK 17,只需将

openjdk-11-jdk

替换为

openjdk-8-jdk

或

openjdk-17-jdk

。安装完成后,再次运行

java -version

和

javac -version

检查。

3. 使用

update-alternatives

管理Java版本Ubuntu提供了一个方便的工具

update-alternatives

来管理系统中的不同命令版本。这对于你安装了多个JDK版本时尤其有用。配置

java

命令:

sudo update-alternatives --config java

系统会列出所有可用的Java运行时,并让你选择一个作为默认。同样地,配置

javac

命令:

sudo update-alternatives --config javac

选择你希望作为默认的

javac

版本。通常,

java

和

javac

应该指向同一个JDK版本。

4. 设置

JAVA_HOME

环境变量许多Java应用程序和构建工具(如Maven、Gradle、Tomcat等)依赖于

JAVA_HOME

环境变量来定位JDK的安装路径。找到你选择的JDK的实际安装路径。通常在

/usr/lib/jvm/

目录下。你可以通过以下命令找到当前

java

命令指向的实际JDK路径:

readlink -f /usr/bin/java | sed "s:bin/java::"

假设输出是

/usr/lib/jvm/java-11-openjdk-amd64/

,那么这就是你的

JAVA_HOME

路径。

编辑你的用户配置文件(例如

~/.bashrc

或

~/.profile

,如果你希望全局生效,则编辑

/etc/environment

)。打开文件:

nano ~/.bashrc

在文件末尾添加以下行(请将路径替换为你实际的JDK路径):

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"export PATH=$PATH:$JAVA_HOME/bin

保存并关闭文件(

Ctrl+O

,

Enter

,

Ctrl+X

)。然后,使更改生效:

source ~/.bashrc

验证

JAVA_HOME

是否设置成功:

echo $JAVA_HOME

你应该能看到你设置的路径。此时,

java

和

javac

命令就应该能够正常工作了。

为什么我的Ubuntu上已经有Java,但

javac

命令却找不到?

这真是个经典场景,不少人初次接触Java开发都会遇到。通常,当你看到

java -version

能正常输出,而

javac -version

却提示“命令未找到”时,这几乎可以肯定地说明你系统里安装的是Java运行时环境(JRE),而非Java开发工具包(JDK)。JRE只包含了运行Java程序所需的虚拟机和核心类库,但它不包含编译器

javac

,也不包含其他开发工具,比如调试器

jdb

、打包工具

jar

等。

Ubuntu在默认情况下,有时会倾向于安装

default-jre

,这只满足了运行Java程序的基本需求。但如果你要进行Java编程,编写

.java

源文件并编译成

.class

字节码,那么JDK是必不可少的。JDK包含了JRE的所有组件,并且额外提供了编译器、调试器、文档生成工具等。所以,解决这个问题的核心就是安装完整的JDK,比如

openjdk-11-jdk

,然后通过

update-alternatives

确保

javac

指向你安装的JDK版本。有时,即使JDK安装了,如果

PATH

环境变量没有包含JDK的

bin

目录,或者

update-alternatives

没有正确配置

javac

,也可能出现类似问题。

如何在Ubuntu上管理和切换不同的Java版本?

如果你像我一样,经常需要在不同的项目之间切换,比如一个老项目跑在Java 8上,新项目则用Java 17,那版本管理就成了日常。Ubuntu提供了一个非常优雅的解决方案,那就是

update-alternatives

工具。这个工具允许你在系统中安装多个版本的Java(或任何其他程序),然后通过一个简单的命令来选择哪个版本作为默认。

操作起来其实不复杂:你先需要安装所有你需要的JDK版本,比如

sudo apt install openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk

。安装完成后,系统会自动将这些Java版本注册到

update-alternatives

中。要切换

java

命令的版本,你只需在终端运行:

sudo update-alternatives --config java

系统会显示一个列表,每个条目都有一个编号,对应一个Java版本和它的安装路径。你只需输入你想要设为默认版本的编号,然后按回车。同样地,为了确保

javac

编译器也指向同一个JDK版本,你需要对

javac

执行相同的操作:

```bashsudo update-alternatives --config javac

一个小技巧是,当你安装新的JDK时,如果它没有自动注册到

update-alternatives

,你可以手动添加它。例如:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1

这里的

1

是优先级,数值越大优先级越高。添加后,再使用

--config

命令就能看到并选择了。这样一来,你就可以根据项目需求,轻松地在不同Java版本之间切换了,非常方便。

设置

JAVA_HOME

环境变量有什么具体作用和好处?

说实话,

JAVA_HOME

这东西,很多时候感觉有点多余,毕竟

PATH

里有

java

和

javac

也能跑。但深入一点就会发现,它真的是个“幕后英雄”,尤其是在复杂的开发环境中。它的主要作用是提供一个统一的、明确的JDK安装路径引用。

具体来说,

JAVA_HOME

的好处体现在几个方面:

工具兼容性与依赖: 很多Java开发工具和构建系统,例如Apache Maven、Gradle、Apache Tomcat、Jenkins等,它们在启动时不会直接去搜索

PATH

里的

java

命令,而是会优先读取

JAVA_HOME

环境变量来确定JDK的安装位置。如果

JAVA_HOME

没有设置或设置错误,这些工具就可能无法正常工作,或者会使用错误的Java版本。版本切换的便捷性: 当你需要切换Java版本时,如果所有依赖的工具都使用

JAVA_HOME

,你只需修改这一个环境变量的值,然后重新加载shell配置,所有工具就会自动切换到新的JDK版本,而不需要去修改每个工具的配置。这比修改

PATH

变量或者

update-alternatives

更直接,尤其是在自动化脚本中。脚本和自动化: 在 shell 脚本中,开发者可以方便地通过

${JAVA_HOME}/bin/java

这样的路径来调用特定版本的Java,这增加了脚本的健壮性和可移植性,避免了因

PATH

顺序或符号链接变化导致的问题。清晰性与规范:

JAVA_HOME

的存在,为开发者提供了一个明确的规范,告诉系统哪个是“主”JDK。这在团队协作或维护大型项目时,有助于确保所有开发者都使用相同的JDK环境,减少“在我机器上能跑”的问题。

所以,虽然看起来只是一个环境变量,但

JAVA_HOME

在Java生态系统中扮演着至关重要的角色,是确保开发环境稳定、高效运行的关键一环。

以上就是如何在Ubuntu中配置Java和javac命令的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/76610.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
产品经理图文工具有哪些
上一篇 2025年11月14日 16:49:42
产品经理需要输哪些文档
下一篇 2025年11月14日 16:50:00

相关推荐

  • 抖音怎么绑定微信?抖音怎么绑定微信好友

    抖音作为当下最受欢迎的短视频平台之一,凭借其强大的功能和丰富的社交属性吸引了众多用户。与此同时,微信作为国内主流社交工具,拥有广泛的用户基础。将抖音与微信进行绑定,不仅可以实现账号互通,还能方便地分享内容、拓展社交关系。接下来的内容将详细介绍抖音绑定微信的操作流程及相关注意事项。 一、抖音绑定微信的…

    2026年9月23日
    900
  • win11耳机插上没反应怎么办_win11耳机无声音故障排查与修复

    首先检查耳机物理连接并测试设备是否正常,确认Windows默认播放设备设置正确,更新或重装音频驱动程序,确保Windows Audio及相关服务已启动,运行系统音频疑难解答工具,并检查Realtek音频管理器中的插孔检测设置。 如果您在Windows 11系统中插入耳机后没有声音或设备无反应,可能是…

    2026年9月23日
    800
  • Java类间ArrayList访问:解决“无法解析方法”的包冲突问题

    本文旨在解决Java开发中,一个类(如Bill)无法访问另一个类(如自定义Menu)中ArrayList的常见问题。核心原因通常是包冲突,即系统默认导入的同名类(如java.awt.Menu)覆盖了自定义类。解决方案包括为自定义类声明明确的包,并在使用时进行显式导入,或确保两者位于同一默认包中,从而…

    2026年9月23日
    000
  • win10打开方式列表里有重复项怎么办_win10打开方式重复项清理方法

    首先通过设置应用重置默认程序,其次可编辑注册表删除重复项,最后可用第三方工具清理;三种方法依次操作可彻底解决Windows 10右键“打开方式”中程序重复问题。 如果您在Windows 10系统中右键点击文件时,发现“打开方式”列表里出现了多个相同的程序选项,这不仅影响操作效率,还可能导致误选。以下…

    2026年9月23日
    300
  • 微信小店怎么设置小程序?微信小程序卖东西怎么弄

    随着线上零售的兴起,越来越多商家开始重视线上渠道。作为国内最大的社交平台之一,微信凭借其庞大的用户基础,推出了微信小店小程序功能。本文将为您详细讲解如何配置微信小店小程序,助您轻松开展线上销售业务。 一、微信小店小程序的特点 1. 用户规模庞大:微信拥有超过10亿活跃用户,为商家提供广阔的市场空间。…

    2026年9月23日
    300
  • 如何在ArtRage中使用AI裁剪图片?快速掌握精准裁剪的技巧

    ArtRage不支持AI裁剪,但可先用稿定设计等AI工具智能裁剪图片,再导入ArtRage进行绘画创作,弥补其裁剪功能简单、无智能识别的不足,结合AI高效预处理与ArtRage真实笔触优势,提升数字绘画效率。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R…

    2026年9月23日
    400
  • VSCode搭建C++编程环境 手把手教你配置VSCode运行C++

    首先确保已正确配置mingw-w64并将其bin目录添加到系统环境变量path中,1. 检查c_cpp_properties.json中的”include path”是否包含头文件路径;2. 确认tasks.json中使用-i选项指定头文件路径;3. 验证编译器能否通过命令行…

    2026年9月23日
    700
  • 使用 Mp4Parser Java API 创建可播放 MP4 文件的教程

    本文档旨在指导开发者使用 Mp4Parser Java API 创建可播放的 MP4 文件。通过一个简单的复制 MP4 文件结构的例子,深入理解 Mp4Parser 的核心概念和使用方法,帮助开发者避免常见错误,并为更复杂的 MP4 文件操作打下基础。本文将重点讲解如何正确复制 MP4 文件的关键 …

    2026年9月23日
    500
  • 个人微信小店怎么样?如何开微信网店

    微信已成为现代人生活中必不可少的社交工具。而微信小店作为其生态体系中的重要组成部分,凭借便捷高效的购物方式,正逐渐在电商领域占据一席之地。本文将围绕个人微信小店的优势、运营策略及未来发展趋势展开分析。 一、个人微信小店的优势 1. 入门门槛低、操作便捷 相比传统电商平台,开设个人微信小店无需支付高昂…

    2026年9月23日
    500
  • iPhoneXS密码设置失败怎么办?解决密码设置问题的实用方法

    iPhone XS密码设置失败通常由触控问题、系统缓存或设置冲突引起,首先检查屏幕清洁度并取下劣质膜,尝试重启或强制重启设备;若无效,可还原所有设置、更新iOS系统或关闭辅助功能;若界面卡顿,优先强制重启并检查后台进程与存储空间;当所有方法均失败时,需通过“抹掉所有内容和设置”恢复出厂设置,或使用电…

    2026年9月23日
    500
  • 解决NetBeans Java Swing/Maven项目中组件实例化异常问题

    本文将围绕NetBeans Java Swing/Maven项目中遇到的java.lang.InstantiationException展开,该异常通常由于自定义组件缺少默认构造函数而导致。正如问题描述中提到的,当NetBeans尝试实例化自定义组件时,如果该组件没有无参构造函数,就会抛出java.…

    2026年9月23日
    100
  • 抖音切换账号总是失败怎么办 抖音多账号登录异常修复方法

    抖音切换账号失败通常由网络、软件版本、账号状态或平台风控导致。首先确认网络通畅并更新至最新版本,清除缓存或数据可解决应用异常;检查目标账号是否在登录列表中,避免因删除记录或未绑定手机号导致无法切换;若账号被封禁或注销,需通过安全中心核实;频繁切换或异地登录可能触发平台限制,建议减少操作频率并使用稳定…

    2026年9月23日
    600
  • VSCode 怎样调试 Python 程序步骤详解 VSCode 调试 Python 程序的详细步骤​

    安装python扩展是vscode调试python程序的前提,确保vscode具备python语言支持;2. 打开python文件后,在代码行号旁点击设置断点,程序将在该处暂停执行;3. 通过点击“运行和调试”图标并创建launch.json文件,选择“python file”配置,实现对当前文件的…

    2026年9月23日
    300
  • windows10怎么查看显卡的显存大小_windows10显卡显存查看方法

    windows10怎么查看显卡的显存大小_windows10显卡显存查看方法windows10怎么查看显卡的显存大小_windows10显卡显存查看方法windows10怎么查看显卡的显存大小_windows10显卡显存查看方法windows10怎么查看显卡的显存大小_windows10显卡显存查看方法

    1、通过系统设置可查看显存大小:右键桌面→显示设置→高级显示设置→显示适配器属性→适配器选项卡中“专用视频内存”即为显存容量。2、任务管理器也可查看:打开任务管理器→性能选项卡→GPU→右侧信息栏中“专用 GPU 内存”显示总量。3、运行dxdiag工具:Win+R输入dxdiag→显示选项卡中“显…

    2026年9月23日 • 用户投稿
    700
  • MidJourney的AI混合工具怎么用?打造高质量艺术图像的完整指南

    /blend命令能融合2-5张图像生成创意新图,关键在于选择有关联的图像并用文本提示引导方向,结合–ar、–style、–v等参数可精细控制风格、构图与版本,通过调整图片顺序、数量及迭代混合能优化结果,实现艺术化视觉重组。 ☞☞☞AI 智能聊天, 问答助手, AI…

    2026年9月23日
    000
  • mysql在哪里输入创建表语句 mysql代码执行环境介绍

    mysql在哪里输入创建表语句 mysql代码执行环境介绍mysql在哪里输入创建表语句 mysql代码执行环境介绍mysql在哪里输入创建表语句 mysql代码执行环境介绍mysql在哪里输入创建表语句 mysql代码执行环境介绍

    选择mysql客户端需根据工作习惯和需求决定。①若喜欢敲命令,可选mysql自带命令行客户端,轻量直接但需记忆命令;②若偏好图形界面,navicat或dbeaver更直观,支持可视化操作,其中dbeaver跨平台且支持多数据库;③其他常用工具如sql developer(适合oracle用户)、da…

    2026年9月23日 • 用户投稿
    200
  • 使用正则表达式实现字符串大小写不敏感替换

    本文将介绍如何利用正则表达式,高效、简洁地实现字符串中特定单词的大小写不敏感替换,从而将所有形式的单词统一转换为指定大小写。通过运用正则表达式的“不区分大小写”模式,可以避免为每种大小写变体编写单独的替换条件,极大提升代码的简洁性和可维护性。 在编程实践中,我们经常会遇到需要将字符串中某个单词的所有…

    2026年9月23日
    500
  • 如何锁定Debian软件版本 apt-mark hold使用说明

    如何锁定Debian软件版本 apt-mark hold使用说明如何锁定Debian软件版本 apt-mark hold使用说明如何锁定Debian软件版本 apt-mark hold使用说明如何锁定Debian软件版本 apt-mark hold使用说明

    apt-mark hold 是 apt 工具中用于锁定软件包版本、防止其被自动升级的命令。1. 通过 sudo apt-mark hold 包名 可锁定指定包;2. 使用 apt-mark showhold 可查看当前锁定的包;3. 执行 sudo apt-mark unhold 包名 可解除锁定。…

    2026年9月23日 • 用户投稿
    000
  • 古墓丽影崛起绳索箭矢怎么获得 绳索箭矢获取方法

    在《古墓丽影:崛起》中,绳索箭矢的获取是主线流程中的关键节点,发生在苏联监狱关卡。此时劳拉被俘,双手被缚,需按操作提示靠近牢房角落的金属水管,使用互动键将其掰断,获得临时近战武器。 接着,利用该水管猛烈击打牢房内侧墙壁上的木质结构,直至墙面破裂,形成一个可通行的小洞。穿过破洞进入相邻的看守房间,在桌…

    2026年9月23日
    900
  • VSCode如何配置RISC-V开发环境 VSCode嵌入式开发的特殊设置

    解决方案的核心是选择合适的risc++-v gnu toolchain并将其bin目录添加到系统path,确保vscode能调用交叉编译器;2. 安装c/c++扩展和cortex-debug等调试扩展,通过c_cpp_properties.json配置头文件路径、宏定义和编译器路径,实现准确的智能感…

    2026年9月23日
    700

发表回复

登录后才能评论
关注微信