如何在Linux中使用~/.bashrc配置Java环境变量

为什么使用 ~/.bashrc 而不是 ~/.profile 原因

~/.bashrc~/.profile(或在某些系统中是~/.bash_profile~/.bash_login)是用来配置用户的shell环境的两个不同的文件。它们的主要区别在于它们被加载的时机和适用的场合:

  • ~/.bashrc主要用于交互式非登录shell。这意味着每次您打开一个新的终端时,该文件会被读取和执行。
  • ~/.profile(或~/.bash_profile/~/.bash_login)主要用于交互式登录shell。这意味着当您登录系统时,该文件会被读取和执行,比如通过图形界面登录或通过ssh登录。

对于大多数桌面用户来说,使用~/.bashrc是更常见的选择,因为它会影响到每一个打开的终端窗口。而~/.profile在登录时只运行一次,适合用来设置环境变量和启动程序。

由于我们要配置的是Java环境变量,这些变量通常需要在每个终端会话中都可用,所以推荐在~/.bashrc中设置它们。

以下是使用~/.bashrc配置Java环境变量的完整博客文章

简介:

在Linux中正确配置Java环境变量对于开发和运行Java应用程序至关重要。本教程将指导您如何通过~/.bashrc文件来配置这些环境变量,以确保在所有终端会话中Java都能够正确运行。

正文:

一、打开您的~/.bashrc文件

打开终端,并输入以下命令来编辑~/.bashrc文件:

nano ~/.bashrc

二、添加Java环境变量

在文件的末尾添加以下行,将JAVA_HOME变量设置为您的Java安装路径。以下是一个示例路径,请确保根据您的实际安装路径进行修改:

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

这两行命令设置了JAVA_HOME环境

变量,并更新了PATH变量以包含Java的bin目录,确保Java命令可以在任何地方执行。

三、应用变更

保存并关闭~/.bashrc文件。为了使这些变更立即生效,您需要运行以下命令:

source ~/.bashrc

或者,您也可以关闭终端窗口并重新打开一个新的终端窗口来应用这些变更。

四、验证您的配置

验证JAVA_HOMEPATH变量是否已正确设置,您可以使用以下命令:

echo $JAVA_HOME
echo $PATH

您应该看到您设置的Java安装路径和包含Java命令的路径。

五、结论

通过在~/.bashrc中设置环境变量,您可以确保在每个新的终端会话中都能够访问Java命令。这是一个简单有效的方式来配置您的Java开发环境。

记住,如果您在系统中有多个版本的Java,或者之后安装了新的Java版本,您可能需要更新这些环境变量以反映新的安装路径。


六、我的实际配置

# .bashrc# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fi
export NSS_STRICT_NOFORK=DISABLEDalias python='/usr/local/bin/python3.8'# 从这里是添加的, 我配置了maven和java
export JAVA_HOME=/usr/local/btjdk/jdk8
export PATH=$JAVA_HOME/bin:$PATHexport MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 python计算机基础

计算机基础和环境搭建 1 计算机基础和环境搭建1.计算机基础1.1 基本概念1.2 编程语言1.3 编译器/解释器 2.学习编程的本质3.Python的介绍3.1 语言的分类3.2 Python3.3 Python的解释器种类(了解)3.4 CPython解释器的版本 4.环境搭建4.1 安装Python解释器4…

关于C#中Monitor的wait/pulse的理解

wait:表示释放对象上的锁并阻止当前线程,直到它重新获取该锁。 pulse:表示通知等待队列中的线程锁定对象状态的更改。 当线程调用 Wait 时,它会释放对象上的锁并进入对象的等待队列。 对象的就绪队列中的下一个线程 (如果有一个…

Matlab交互式的局部放大图

在数据可视化中,很多时候需要对某一区间的数据进行局部放大,以获得对比度更高的可视化效果。下面利用 MATLAB 语言实现一个交互式的局部放大图绘制。 源码自行下载: 链接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd9d…

《2023年度程序员收入报告》 :旧金山位居第一,北京程序员中位数超60万元

2024年刚刚拉开序幕,备受瞩目的程序员薪资调研报告再度登场。由知名数据采集平台levels.fyi 搜集并整理了《2023年全球程序员收入报告》,为我们揭示了程序员最新的收入情况,其中有哪些值得关注的亮点呢? 行情向好,大多…

burp靶场——XXE注入

XML 外部实体 (XXE) 注入 1. 什么是xxe漏洞: https://portswigger.net/web-security/xxe#what-is-xml-external-entity-injection XML 外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。…

GEE:机器学习分类中每个类别的概率图像可视化

作者:CSDN @ _养乐多_ 在 Google Earth Engine(GEE) 中应用机器学习分类器进行多分类时,有一个需求是想知道每个像素对于每个类别的分类概率。 比如在进行随机森林分类时,每个决策树会生成一个类别,通过投票选择票数最多的类别作为最终分类。除了最终分类结果,其他类别…

Pandas.DataFrame.groupby() 数据分组(数据透视、分类汇总) 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.1.2 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。 Pandas API参…

计算机组成原理 运输层

文章目录 运输层运输层协议概述进程之间的通信运输层的两个主要协议运输层的端口 用户数据报协议 UDPUDP 概述UDP 的首部格式 传输控制协议 TCP 概述TCP 最主要的特点TCP 的连接 可靠传输的工作原理停止等待协议连续 ARQ协议 TCP 报文段的首部格式TCP 可靠传输的实现以字节为单…

TensorRT模型优化部署 (八)--模型剪枝Pruning

系列文章目录 第一章 TensorRT优化部署(一)–TensorRT和ONNX基础 第二章 TensorRT优化部署(二)–剖析ONNX架构 第三章 TensorRT优化部署(三)–ONNX注册算子 第四章 TensorRT模型优化部署(四&am…

Go-安装与基础语法

TOC 1. Go 安装与环境变量 1.1 下载 需要从Go语言的官方网站下载适合你操作系统的Go语言安装包。Go语言支持多种操作系统,包括Windows、Linux和Mac OS。 对于Windows用户,下载.msi文件,然后双击该文件,按照提示进行安装即可。…

python的装饰器详解

目录 一:介绍 二:在方法中使用 三:在类中使用 四:python自带的装饰器 一:介绍 Python的装饰器是一种高阶函数,它允许你在不改变函数内部逻辑的情况下,给函数添加额外的功能。装饰器本质上是…

剖析setinterval用法

1 基本语法 JavaScript:setInterval() 用法详解_js setinterval-CSDN博客 setInterval() 是 JavaScript 中的一个内置函数,它用于在指定的间隔时间内重复执行一段代码,实现周期性操作。该函数的语法如下: setInterval(function…

2024年浙江省高新技术企业申报的条件和各地区的奖励补贴

浙江省高新技术企业奖励补贴 1、舟山市高新技术企业奖励 对新认定的国家高新技术企业,每家给予20万元奖励。 定海区 对新认定的高新技术企业,一次性给予30万元的专项补助;对有效期内的高新技术企业在工业企业绩效评价中可给予提档。 普陀…

【C++进阶】心心念念的红黑树,它来了!

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

Spring框架是如何解决Bean创建过程中的循环依赖问题的

引言 本文主要梳理了Spring框架Bean创建过程中应对循环依赖问题的相关源码。我在手写super-mini-webpackhttps://blog.csdn.net/q1424966670/article/details/135628531?spm1001.2014.3001.5502的时候也介绍过解决循环依赖的算法:Map记忆化搜索。可以猜测这段源码…

ACL【新华三与华为的区别】

【解释】acl简单点解释就是,一套根据需求而设置的规则 【背景】 192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段,要求使用基本 ACL 实现20_1 可以访问 20_6 的 TELNET 服务,但不能访问 FTP 服务 【操作步骤】 {易混点 }:1. …

STL常用容器—string容器

STL常用容器—string容器 string基本概念string初始化及赋值1. 构造函数原型2. 字符串赋值3. 字符串拼接 string字符存取(遍历)字符串的查找和替换字符串比较string取子串字符串删除和插入string与char *类型的转化 string基本概念 本质: s…

机器学习周刊第六期:哈佛大学机器学习课、Chatbot Ul 2.0 、LangChain v0.1.0、Mixtral 8x7B

— date: 2024/01/08 — 吴恩达和Langchain合作开发了JavaScript 生成式 AI 短期课程:《使用 LangChain.js 构建 LLM 应用程序》 大家好,欢迎收看第六期机器学习周刊 本期介绍10个内容,涉及Python、机器学习、大模型等,目录如下&#xff…

Miracast手机高清投屏到电视(免费)

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Miracast概述 Miracast是一种无线显示标准,它允许支持Miracast的设备之间通过Wi-Fi直接共享音频和视频内容,实现屏幕镜像或扩展显示。这意味着你可以…

C++常用类

1、QString 字符串类 QString 是Qt的字符串类,与C的std::string相比,不再使用ASCII编码。QString使用的Unicode编码。 QString 完全支持中文, 但是由于不同的技术可能会采用不同的编码。有时候也会遇到中文编码的一致性问题。 如果后续的学习…