mac电脑m1搭建java开发环境参考手册

news2024/11/17 21:37:49

1 背景介绍

开发人员经常会换电脑,或者换新电脑,意味着重新搭建开发环境,很麻烦。但新电脑到手里面了,不换又不好,此篇专门用来记录mac电脑m1搭建java开发环境的步骤。希望对读者有所帮助,一条龙服务。
后期有时间,会出关于win10环境的,目前介绍mac环境。

2 JDK安装

M1版MacBook安装Arm版本的JDK:
https://cdn.azul.com/zulu/bin/zulu8.60.0.21-ca-jdk8.0.322-macosx_aarch64.dmg
官网地址:
https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk#zulu
在这里插入图片描述
不同机器需要选择对应的版本。我的是m1, 选择了arm64

demo@admin54 ~ % java -version
openjdk version "1.8.0_345"
OpenJDK Runtime Environment (Zulu 8.64.0.19-CA-macos-aarch64) (build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (Zulu 8.64.0.19-CA-macos-aarch64) (build 25.345-b01, mixed mode)

安装好后输入:java -version
可以查看对应的JDK版本。

3 Maven安装

maven版本比较多,
具体在这里下载。可以选择新版:https://maven.apache.org/download.cgi

4 Git安装

安装方式比较多,
1 可以使用命令行安装:

git clone https://github.com/git/git

2 然后查看具体版本:

git --version
git version 2.32.1 (Apple Git-133)

3 生成SSH密钥
装命令执行完之后,输入命令确认安装完毕:cd ~/.ssh ;ls

demo@admin54 ~ % cd ~/.ssh ;ls
config		id_rsa		id_rsa.pub	known_hosts

输入:cat id_rsa.pub,查看公钥内容信息(备用)

4 后面需要到github或者gitee上面进行配置。

5 配置环境变量

打开终端,配置 JDK、Maven 的环境变量
1、vim ~/.bash_profile
2、修改配置文件,路径换成自己的安装路径

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
​
export M2_HOME=/Users/demo/soft/apache-maven
export PATH=$PATH:$M2_HOME/bin

3、修改好,激活命令:
source ~/.bash_profile

6 安装IntelliJ IDEA

这里需要小心,不同版本选择的idea版本也不相同,版本选择错了,你会发现idea运行起来会特别卡,比如你是m1芯片,用了intel的idea, 打开2到4个项目工程,或者本地运行springboot项目,会特别卡。

如果你是m1芯片,用了对应的idea版本, idea会非常顺化,打开10个工程都不卡。本地启动1分钟就OK,不用等5分钟,10分钟。下面是笔者自己配置情况:

在这里插入图片描述
重要的事情说3遍,
这里下载时候千万要下载与自己电脑芯片一致,不然会比较卡!
这里下载时候千万要下载与自己电脑芯片一致,不然会比较卡!
这里下载时候千万要下载与自己电脑芯片一致,不然会比较卡!

配置JDK

1、添加JDK配置
打开:file -> project structure
在这里插入图片描述

2、设置项目JDK版本

在这里插入图片描述

7 内存优化

显示内存指示器
这个功能很实用,在idea最右下边, 右键然后勾选 memory indicator-内存指示器,显示内存情况。
在这里插入图片描述

在这里插入图片描述
如果发现电脑卡了,显示内存占用比较卡,就可以点一下,干掉一些内部,idea就不那么卡了。

8 插件相关

可以看笔者另外一篇博客。里面介绍了很多对开发比较实用点插件。
https://blog.csdn.net/qq_39463175/article/details/129478435?spm=1001.2014.3001.5501

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

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

相关文章

初探 transformer

大部分QA的问题都可以使用seq2seq来实现。或者说大多数的NLP问题都可以使用seq2seq模型来解决。 但是呢最好的办法还是对具体的问题作出特定的模型训练。 概述 Transformer就是一种seq2seq模型。 我们先看一下seq2seq这个模型的大体框架(其实就是一个编码器和一个解码器)&a…

OpenGL 光照贴图

1.简介 现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成。想想一辆汽车:它的外壳非常有光泽,车窗会部分反射周围的环境,轮胎不会那么有光泽,所以它没有镜面高光,轮毂非常闪亮。 2.漫反射…

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行触发同步(C#)

Baumer工业相机堡盟工业相机如何使用BGAPISDK对两个万兆网相机进行触发同步(C#) Baumer工业相机Baumer工业相机BGAPISDK和触发同步的技术背景Baumer工业相机使用BGAPISDK进行双相机主从相机触发1.引用合适的类文件2.使用BGAPISDK设置主相机硬件触发从相机…

ReentrantLock 底层原理

目录 一、ReentrantLock入门 二、AQS原理 1、AQS介绍 2、自定义锁 三、ReentrantLock实现原理 1、非公平锁的实现 加锁流程 释放锁流程 2、可重入原理 3、可打断原理 4、公平锁原理 5、条件变量原理 await流程 signal流程 一、ReentrantLock入门 相对于synchron…

对测试外包的一些粗略看法

什么叫外包,外包最直接理解就是让别人做事;外包其中一项目的就是降低企业经营成本。 从外包的含义和目的来看,就是我们帮人做事、听人指挥,当企业经济不好的时候,我们就成为了降低成本的最佳方案。说这些是让大家比较…

高并发编程:线程池

一、概述 线程池首先有几个接口先了解第一个是Executor,第二个是ExecutorService,在后面才是线程池的一个使用ThreadPoolExecutor。 二、Executor Executor看它的名字也能理解,执行者,所以他有一个方法叫执行,那么执…

JVM原理:JVM垃圾回收算法(通俗易懂)

目录 前言正文垃圾标记算法引用类型强引用软引用弱引用虚引用 引用计数法循环引用问题 根可达性分析法虚拟机栈(栈帧的局部变量表)中的引用方法区中类静态属性引用方法区中常量引用本地方法栈(Native方法)引用 垃圾回收算法标记清…

Java语法进阶及常用技术(八)--线程池

初识线程池 什么是“池” ---- 软件中的“池”,可以理解为计划经济。 我们的资源是有限的,比如只有十个线程,我们创造十个线程的线程池,可能我们的任务非常多,如1000个任务,我们就把1000个任务放到我们十个…

shell脚本学习记录(流程控制)

前言: 在shell脚本中,()、{}、[]都是用来表示命令或者变量的范围或者属性。它们的具体区别如下: ():表示命令在子shell中运行。括号中的命令会在一个子shell中运行,并且该子shell拥符有自己的环境变量和文件描述&#…

【youcans动手学模型】DenseNet 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】DenseNet 模型-CIFAR10图像分类 1. DenseNet 神经网络模型1.1 模型简介1.2 论文介绍1.3 改进方法与后续工作1.4 分析与讨论 2. 在 PyTorch 中定义 DenseNet 模型类2.1 DenseBlo…

性能测试实战——登录接口的性能测试(超详细总结)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在实际业务场景中…

python:六个模块,概括全书(上万字最详细版)

拍摄于——无锡南长街 文章目录 模块一:基础知识1、python语言2、常见数字类型3、字符串4、数字类型转换5、标识符命名6、常见关键字7、运算符与表达式(1)算术运算符(2)关系运算符(3)逻辑运算符…

循序渐进,搞懂什么是动态规划

循序渐进,搞懂什么是动态规划 写在前面 温馨提示,本文的篇幅很长,需要花很长的时间阅读。如果要完全理解所有内容,还需要花更多的时间学习。如果打算认真学习动态规划,又不能一次看完,建议您收藏本文以便后…

《深入理解计算机系统》(6)存储器层次结构

1、存储技术 随机访问存储器,分为两类: RAM,同时也是易失性存储器,也分为两类: - SRAM:静态随机访问存储器,速度快,价格高。多用来作为高速缓存存储器。 - DRAM:动态随机…

WinDbg安装入坑1(C#)

由于作者水平有限,如有写得不对的地方,请指正。 使用WinDbg的过程中,坑特别的多,对版本要求比较严格,如: 1 32位应用程序导出的Dump文件要用32位的WinDbg打开,想要没有那么多的问题&#xff…

chatgpt赋能python:Python删除内容:掌握三种删除方式

Python删除内容:掌握三种删除方式 删除变量中的值 删除变量中的值是Python编程中常见的操作。Python提供了del语句用于删除变量中的值: x "Hello World" del x上述代码中,del x语句将删除变量x中的值。如果我们在执行print(x)时…

从C语言到C++_18(stack和queue的常用函数+相关练习)力扣

目录 1. stack 1.1 栈的概念 1.2 stack 的介绍和使用 2. queue 2.1 队列的概念 2.2 queue 的介绍和使用 3. 栈和队列的相关选择题 答案: 4. 栈和队列的相关OJ题 155. 最小栈 - 力扣(LeetCode) 解析代码: 剑指 Offer 3…

python学习-代码调试器

目录 为什么学习调试器Pycharm Debugger示例所用代码布局调试工具栏 Debug Bar程序控制工具栏 pdb查看源代码 l list查看当前函数源代码 ll longlist打印变量 p查看调用栈w where向上移动当前帧 u up向上移动当前帧 d down运行当前行代码,在第一个可以停止的位置停下 s step继续…

Selenium基础篇之八大元素定位方式

文章目录 前言一、如何进行元素定位?1.右击元素-检查2.F12-选择工具点击元素3.借助selenium IDE 二、八大元素定位方式1.ID1.1 方法1.2 举例1.3 代码1.4 截图 2.NAME2.1 方法2.2 举例2.3 代码2.4 截图 3.CLASS_NAME3.1 方法3.2 举例3.3 代码3.4 截图 4.TAG_NAME4.1 …

再也不用担心组件跨层级的数据共享和方法驱动了

文章目录 兄弟组件的传值和方法调用多个独立组件的数据共享和方法调用多个组件内的方法和数据互相驱动:eventBus多个组件的数据共享以及数据修改:vuex 项目中关于组件的使用经常会碰到这种情况:父子组件传和方法调用、兄弟组件的传值和方法调…