macOS .bash_profile配置文件优化记录

ops/2024/10/11 0:32:43/

文章目录

  • 说明
  • 原文件内容
  • 优化思路
  • 优化操作
  • 测试验证
    • 1. 验证`JAVA_HOME`
    • 2. 验证`MAVEN_HOME`
    • 3. 验证`MONGODB_HOME`
    • 4. 验证`CLASSPATH`
    • 5. 验证`PATH`

说明

  • 展示的代码中,关于具体的文件路径位置,请灵活修改为自己的真实文件目录!

原文件内容

  • 从macOS Catalina(10.15)开始,Zsh成为了macOS的默认Shell。
    bash">chsh -s /bin/zsh
    
  • 打开.bash_profile文件
    bash">open -e .bash_profile
    
  • 文件内容显示为:
    bash">export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-22.jdk/Contents
    export PATH=$JAVA_HOME/bin:$PATH:.
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
    export MAVEN_HOME=/Library/Java/env/maven/maven-3.9.9
    export PATH=$MAVEN_HOME/bin:$PATH:.
    export PATH=/usr/local/mongodb/bin:$PATH
    

优化思路

  1. 避免重复设置PATH:每次设置PATH时,都在前面添加新的路径,会导致PATH变量过长。可以一次性集中设置PATH。
  2. 使用更通用的方式设置CLASSPATH:由于tools.jar和dt.jar在较新版本的JDK中可能不再存在,可以考虑动态设置CLASSPATH。
  3. 使用环境变量来减少冗余:将常用路径提取为变量,以便于修改和维护。

优化操作

  1. Java环境变量:确保JAVA_HOME指向Contents/Home目录,这是标准的Java目录结构。
  2. Maven和MongoDB环境变量:继续设置MAVEN_HOMEMONGODB_HOME
  3. CLASSPATH设置:检查$JAVA_HOME/lib目录是否存在,并添加tools.jar和dt.jar
  4. PATH设置:集中一次性添加所有新的路径,避免重复和冗长。
  • 使用#号注释文件中多余的内容
bash">#export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-22.jdk/Contents
#export PATH=$JAVA_HOME/bin:$PATH:.
#export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
#export MAVEN_HOME=/Library/Java/env/maven/maven-3.9.9
#export PATH=$MAVEN_HOME/bin:$PATH:.
#export PATH=/usr/local/mongodb/bin:$PATH# Java Environment
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-22.jdk/Contents/Home
export MAVEN_HOME=/Library/Java/env/maven/maven-3.9.9
export MONGODB_HOME=/usr/local/mongodb# CLASSPATH: adding JAVA_HOME/lib/tools.jar and JAVA_HOME/lib/dt.jar if they exist
if [ -d "$JAVA_HOME/lib" ]; thenexport CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
fi# PATH: add all necessary paths in one line
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$MONGODB_HOME/bin:$PATH:.
  • 激活配置:更新.bash_profile后,需要重新加载文件才能使配置生效:
    bash">source ~/.bash_profile
    

测试验证

1. 验证JAVA_HOME

  • 确保JAVA_HOME环境变量正确设置,并且Java命令可以正常运行:
bash">echo $JAVA_HOME
  • 验证Java版本:输出应该显示Java的版本信息
bash">java -version

2. 验证MAVEN_HOME

  • 确保MAVEN_HOME环境变量正确设置,并且Maven命令可以正常运行:
    bash">echo $MAVEN_HOME
    
  • 验证Maven版本:输出应该显示Maven的版本信息
    mvn -version
    

3. 验证MONGODB_HOME

bash">echo $MONGODB_HOME
  • 验证MongoDB命令是否可用,输出应该显示MongoDB的版本信息
    bash">mongod --version
    

4. 验证CLASSPATH

-验证CLASSPATH环境变量是否正确设置:
bash echo $CLASSPATH

5. 验证PATH

  • 确保所有路径都已正确添加到PATH环境变量中:
    bash">echo $PATH
    

http://www.ppmy.cn/ops/123726.html

相关文章

R语言绘制面积图

面积图是一种数据可视化图表。它通过填充区域来展示数据随某个变量(如时间)的变化趋势及累积效果。面积图能清晰地呈现数据的上升、下降和波动情况,直观反映数据的大小关系。适用于多种领域,如经济数据分析展示 GDP 变化及产业贡献…

Redis-主从复制

分布式系统,涉及到一个非常关键的问题:单点问题 如果某个服务器程序,只有一个节点,就会出现: 可用性问题(这个服务器挂了,服务中断)性能/支持的并发量有限 引入分布式系统,主要也是为了解决上述的单点问题 在分布式系统中,希望有多个服务器来部署redis服务,从而构成一个red…

论文阅读笔记-Are Pre-trained Convolutions Better than Pre-trained Transformers?

前言 Transformer诞生到现在,从NLP领域到CV领域,可以说是两开花。特别是在预训练模型中,BERT相关系列近些年屡屡突破,在各种下游任务中,不仅能提速还有效果上的提升。所以在NLP的相关任务中,提及Transformer和CNN时,Transformer一般都会优先考虑,更何况是在预训练语言…

YOLOv8实战工地安全帽检测【数据集+YOLOv8模型+源码+PyQt5界面】

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对工地安全帽数据集进行训练和优化,该数据集包含丰富的安全帽图像样本…

【C++网络编程】(一)Linux平台下TCP客户/服务端程序

文章目录 Linux平台下TCP客户/服务端程序服务端客户端相关头文件介绍 Linux平台下TCP客户/服务端程序 图片来源:https://subingwen.cn/linux/socket/ 下面实现一个Linux平台下TCP客户/服务端程序:客户端向服务器发送:“你好,服务…

Git 工作区、暂存区和仓库

在使用 Git 进行版本控制时,工作区、暂存区和仓库概念的详细解释: 1. 工作区(Working Directory) 工作区是你在计算机上实际编辑文件的地方。当你克隆一个 Git 仓库或在现有目录中初始化一个 Git 仓库时,这个目录就是…

大载重无人机物资吊运技术培训详解

大载重无人机物资吊运技术培训详解主要涉及理论知识、实操技能、安全规范以及应用领域等多个方面。以下是对这些方面的详细解析: 一、理论知识 1. 无人机基础知识 无人机类型与结构:了解大载重无人机的类型、结构特点及其工作原理,特别是针…

【华为HCIP实战课程七】OSPF邻居关系排错MTU问题,网络工程师

一、MTU MUT默认1500,最大传输单元,一致性检测 [R3-GigabitEthernet0/0/1]mtu 1503//更改R3的MTU为1503 查看R3和SW1之间的OSPF邻居关系正常: 默认华为设备没有开启MTU一致性检测! [R3-GigabitEthernet0/0/1]ospf mtu-enable //手动开启MTU检测 [SW1-Vlanif30]ospf mtu…