Mac - Node/Java 配置安装全流程

Mac - Node/Java 配置安装全流程

  • 一. Git 安装
  • 二. Java 相关安装
    • 2.1 jenv 版本控制工具
    • 2.2 JDK1.8 和 JDK21的安装
    • 2.3 maven 安装
  • 三. Node 相关安装
    • 3.1 nvm 版本控制工具
    • 3.2 Node 版本安装

一. Git 安装

1.我们首先安装一下Homebrew,这个工具很有用,能利用它下载很多东西。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

然后我们可以选择第一个数据源,并输入你的密码安装
在这里插入图片描述
2.接下来我们就可以利用Homebrew来安装git了:

brew install git

3.校验是否安装成功:

git --version

二. Java 相关安装

2.1 jenv 版本控制工具

1.这个工具用来管理JDK,我们可以使用它快速切换JDK,首先安装:

brew install jenv

2.安装完毕之后,添加环境变量:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc

3.更新系统配置:(现在的mac一般都是更新zshrc文件)

source ~/.zshrc
source ~/.bash_profile

2.2 JDK1.8 和 JDK21的安装

我们先说下JDK21的下载,我们可以去 官网 下载:
在这里插入图片描述
下载完毕后:

cd ~/Downloads
# 记得将命令中的`openjdk-21.0.2_macos-x64_bin.tar.gz`、`jdk-21.0.2.jdk` 修改为你实际的名称:
tar -zxf openjdk-21.0.2_macos-aarch64_bin.tar.gz
mv jdk-21.0.2.jdk ~/Library/Java/JavaVirtualMachines

我们再换一种方式下载JDK8(现在官网要登陆才能下载8):

wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz

如果没有wget 命令的:

brew install wget

下载完毕:

tar -zxvf  jdk-8u151-linux-x64.tar.gz

我们将自己下载来的JDK版本包的路径存起来,通过jenv管理:

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
jenv add /Users/jj.lin/Library/Java/JavaVirtualMachines/jdk-21.0.2.jdk/Contents/Home

例如JDK21的添加:
在这里插入图片描述

查看已经安装过的JDK版本:

/usr/libexec/java_home -V

例如我这里添加了两个版本:
在这里插入图片描述
可以查看所有的jdk版本:

jenv versions

在这里插入图片描述
设置全局版本:

jenv global 1.8

设置局部版本:

jenv local 21

在这里插入图片描述

2.3 maven 安装

1.下载 maven

cd ~/Downloads
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar -xvf apache-maven-3.8.8-bin.tar.gz

2.安装环境变量(下载来的东西都放到专门的路径,不要放到下载目录)

cd
vi .zshrc

然后将下面的代码复制进去

export MAVEN_HOME=/Users/jj.lin/Desktop/ruanjian/apache-maven-3.8.8
export PATH=$MAVEN_HOME/bin:$PATH

3.最后更新下配置即可:

source ~/.zshrc

三. Node 相关安装

3.1 nvm 版本控制工具

可以看我的这篇文章:mac 系统正确安装nvm

3.2 Node 版本安装

nvm安装好后,就可以利用nvm快速安装并切换Node版本,例如我安装两个版本的Node

nvm install v20.11.1
nvm install v16.14.0

设置镜像:

npm config set registry 你的镜像

切换当前系统的Node版本:

nvm use 16.14.0

如果Mac系统版本比较高的,上面的命令可能只对当前终端有效,下面的命令可以全局(切换之后还要更新下系统环境变量,重启终端即可):

nvm alias default 16.14.0
source ~/.zshrc

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Security系列之PasswordEncoder

概述 任何一个登录系统的密码不能明文存储,万一发生数据库泄漏事故(不管是内部人员导出数据库数据还是被黑客攻击破解数据库实例节点拿到数据库数据等,又或者是其他情况造成的),将产生巨大的损失。因此明文密码在存储…

react-学习基础偏

1.新建文件夹 2.vscode引入这个文件夹 3.打开vscode终端 执行命令 npx create-react-app react-basic 创建基本项目(react-basic项目文件夹名) 4.进入到这个文件夹 可用的一些命令 这就算启动成功 5. 这是项目的核心包 渲染流程

关于JavaScript技术的基础内容汇总

目录 JavaScript 基础知识1. JavaScript 基本语法2. 变量和常量3. 数据类型4. 运算符5. 控制结构6. 函数7. 对象8. 数组9. 事件处理10. DOM 操作 JavaScript 基础知识 学习 JavaScript(简称 JS)是前端开发的重要组成部分,它是一种动态的、弱…

【c语言】指针就该这么学(3)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C语言 目录 一、函数指针 1.函数指针变量的创建 2.函数指针变量的使用 二、typedef关键字 三、函数指针数组 1.函数指针数组的概念 2.函数指针数…

【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)

目录 一、 进程1.1 PID(进程标识符)1.2 内存指针1.3 文件描述符表1.4 状态1.5 优先级1.6 记账信息1.7 上下文 二、线程三、总结:进程和线程之间的区别(非常非常非常重要,面试必考题) 一、 进程 简单来介绍一下什么是进程&#xf…

[UE 虚幻引擎] DTLoadFbx 运行时加载FBX本地模型插件说明

本插件可以在打包后运行时动态加载FBX模型。 新建一个Actor 并添加一个 DT Runtime Fbx Component。 然后直接调用组件的函数 LoadFile 加载显示模型(注:不支持模型动画) FilePath : 加载模型的绝对路径。 Create Collision : 是否创建碰撞…

R语言探索与分析19-CPI的分析和研究

一、选题背景 CPI(居民消费价格指数)作为一个重要的宏观经济指标,扮演着评估通货膨胀和居民生活水平的关键角色。在湖北省这个经济活跃的地区,CPI的波动对于居民生活、企业经营以及政府宏观经济政策制定都具有重要的影响。因此&a…

单链表的排序

对一个单链表进行排序。 方法一:构造一个辅助的数组来排序。 Java构造一个集合来存储。先将链表内容存储到集合中去,再对集合进行排序,最后按照顺序取出集合中的数据即可。 public ListNode sortInLit(ListNode head) {if (head null || he…

Solon2分布式事件总线的应用价值探讨

随着现代软件系统的复杂性日益增加,微服务架构逐渐成为开发大型应用的主流选择。在这种架构下,服务之间的通信和协同变得至关重要。Solon2作为一个高性能的Java微服务框架,其分布式事件总线(Distributed Event Bus)为微…

国标GB/T 28181详解:国标GBT28181-2022的客户端主动发起历史视音频回放流程

目录 一、定义 二、作用 1、提供有效的数据回顾机制 2、增强监控系统的功能性 3、保障数据传输与存储的可靠性 4、实现精细化的操作与控制 5、促进监控系统的集成与发展 三、历史视音频回放的基本要求 四、命令流程 1、流程图 2、流程描述 五、协议接口 1、会话控…

网络空间安全数学基础·多项式环与有限域

5.1 多项式环(掌握) 5.2 多项式剩余类环(理解) 5.3 有限域(熟练) 5.1 多项式环 定义:设F是一个域,称是F上的一元多项式. 首项:如果an≠0,则称 a…

el-dialog给弹框标题后加图标,鼠标悬停显示详细内容

效果&#xff1a; 代码&#xff1a; <div slot"title" class"el-dialog__title">标题<el-tooltip effect"dark" placement"right"><div slot"content">鼠标悬停显示</div><i class"el-icon…

队列的讲解与实现

这里写目录标题 一、队列的概念及结构二、队列的实现(使用VS2022的C语言)1.初始化、销毁2.入队、出队3.返回队头元素、返回队尾元素、判空、返回有效元素个数 三、完整 Queue.c 源代码 一、队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端…

手机相册的排列方式探讨

不论你是不是程序员&#xff0c;你一定留意过一个问题&#xff1a;相册 App 基本都将图片裁剪成了居中的 1:1 正方形。那么手机相册 App&#xff0c;为什么要将图片切割成 1:1 正方形&#xff0c;然后以网格排列&#xff1f;是行业标准吗&#xff1f; 自适应图片宽度的图库&a…

vr样板房实景漫游展示制作解决了地产商难题

家具和软装销售中&#xff0c;如何直观展示产品优势一直是老板们的难题。口头描述往往难以让客户真正感受到产品的独特之处&#xff0c;这不仅影响了销售效果&#xff0c;也增加了沟通的难度。但现在&#xff0c;我们有了全新的解决方案——样板房VR全景编辑软件! 样板房VR全景…

SpringMVC:消息转换器

1. HttpMessageConvertor 简介 HttpMessageConverter是Spring MVC中非常重要的一个接口。翻译为&#xff1a;HTTP消息转换器。该接口下提供了很多实现类&#xff0c;不同的实现类有不同的转换方式。 转换器 如上图所示&#xff1a;HttpMessageConverter接口的可以将请求协议转…

数据结构之ArrayList与顺序表(上)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 顺序表的学习&#xff0c;点我 上面这篇博文是关于顺序表的基础知识&#xff0c;以及顺序表的实现。…

美团面试:百亿级分片,如何设计基因算法?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的架构类/设计类的场景题&#xff1a; 1.说说分库分表的基因算法&#xff1f…

【Linux】深入解析动静态库:原理、制作、使用与动态链接机制

文章目录 前言&#xff1a;1. 什么是动静态库2. 动静态库的制作和使用3. 动态库的查找问题4. 理解动态库的加载4.1. 站在系统的角度理解4.2. 编址、可执行程序4.3. 动态库动态链接和加载问题 总结&#xff1a; 前言&#xff1a; 在软件开发中&#xff0c;动静态库是两种重要的…

Netty中的ByteBuf使用介绍

ByteBuf有三类&#xff1a; 堆缓存区&#xff1a;JVM堆内存分配直接缓冲区&#xff1a;有计算机内存分配&#xff0c;JVM只是保留分配内存的地址信息&#xff0c;相对于堆内存方式较为昂贵&#xff1b;复合缓冲区&#xff1a;复合缓冲区CompositeByteBuf&#xff0c;它为多个B…