Mac搭建Java环境【环境搭建】

Mac搭建Java环境【环境搭建】

1 安装Java SDK

官网地址:https://www.oracle.com/java/technologies/downloads/archive/
在这里插入图片描述
下载dmg,双击之后无脑安装即可。

# 进入 JDK 安装目录
cd /Library/Java/JavaVirtualMachines# 查看文件
ls# 输入
cd ~# 打开环境变量配置文件
vim .bash_profile# 复制如下内容,JAVA_HOME 替换为自己目录
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.# 配置文件立即生效
source .bash_profile# 查看 JAVA_HOME 目录
echo $JAVA_HOME# 查看 JDK 版本信息
java -version

在这里插入图片描述

2 安装Maven

官网地址:https://maven.apache.org/download.cgi

  • 选择对应版本,下载bin.tar.gz
    在这里插入图片描述

# 修改环境变量
vim .bash_profile# 复制如下内容,MAVEN_HOME 替换为自己目录
export MAVEN_HOME=/Users/ziyi2/maven/apache-maven-3.9.0
export PATH=$MAVEN_HOME/bin:$PATH:.
# 配置文件立即生效
source .bash_profile# 查看 MAVEN_HOME 目录
echo $MAVEN_HOME# 创建maven仓库目录
mkdir -p $MAVEN_HOME/maven_repository/# 查看 maven 版本信息
mvn -v

在这里插入图片描述

配置maven阿里云镜像加速:

# 进入maven的conf目录,在setting.xml中添加阿里云镜像仓库。
vim $MAVEN_HOME/conf/settings.xml# 找到< mirrors >标签,在标签里添加:
# 配置阿里镜像加速<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>       </mirror>

在这里插入图片描述

3 安装IDE

以IDEA为例。
官网地址:https://www.jetbrains.com/zh-cn/idea/download/other.html

在这里插入图片描述
下载之后,无脑双击安装即可。

完成之后,创建新项目,修改Maven配置到本地。
在这里插入图片描述

安装插件:
在这里插入图片描述

3.1 插件推荐

插件推荐:

  1. GenerateAllSetter
  2. Lombok
  3. HTTPClient
  4. Git、GitHub、Gitee、GitToolBox
  5. SpringBoot Initializr and Assistant
  6. Translation
  7. MybatisX
  8. JPA Buddy
  9. Alibaba Java Code Guidelines
  10. Raindow Brackets
  11. HighlightBracketPair
  12. Maven helper
  13. Database Tools and SQL
  14. Alibaba Java Coding Guidelines(编码规范)
  15. MyBatisCodeHelper(直接查看SQL)
  16. 通义灵码(AI)

3.2 常用快捷键

下面是windows对应快捷键,Mac版修改对应按键即可,如:
格式化:ctrl + alt +L=》command+option+L

【1】调用方法的时候,如果有明确的返回最值,我们用变量接收==》快捷键:Ctrl+Alt+V
【2】格式化==》ctrl + alt +L
【3】Alt + Insert 可根据自己的需要进行选择(包含构造器)==》多个方法可以用shift选择(点击首和尾)
【4】查看源码,选中,之后ctrl + B
【5】选中之后Alt + enter对异常进行处理
【6】ctrl + Y 删除当前行
【7】var => 快速生成结果
【8】alt(alt + shift + insert) =>批量编辑
【9】ctrl + shift + 减号(所有代码全部折叠)/ 加号(全部展开)
【10】ctrl + 减号/加号(光标所在位置的代码折叠/展开)
【11】ctrl + r替换
【12】ctrl+alt+T:surround with
【13】ctrl+G,输入行号:快速定位到某一行
【14】ctrl+alt+V,选中代码(str.length),快速生成变量
【15】ctrl+alt+M,选中代码,抽取方法
【16】ctrl+alt+左方向:快速回到上一次点击位置

3.3 tips

①鼠标滚动缩放代码

settins - editor - general - MouseControl(change font size…)

②文件模板

settings - file and code templates - Files(添加class模板)

在这里插入图片描述
class模板:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/*** @description TODO* @author zhouYi* @date ${DATE} ${TIME}* @version */
public class ${NAME} {
}

interface模板:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")/*** @description TODO* @author ${USER}* @date ${DATE} ${TIME}* @version */
public interface ${NAME} {
}
③自动删除无用包

在这里插入图片描述

④开启自动生成UUID

设置之后,在实现了Serializable的类上,通过alt+enter(windows版,mac上更换对应按键即可)即可自动生成UID

在这里插入图片描述

⑤时间转换配置LocalDateTimeConfig类
@Configuration
public class LocalDateTimeConfig {/** 序列化内容*   LocalDateTime -> String* 服务端返回给客户端内容* */@Beanpublic LocalDateTimeSerializer localDateTimeSerializer() {return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}/** 反序列化内容*   String -> LocalDateTime* 客户端传入服务端数据* */@Beanpublic LocalDateTimeDeserializer localDateTimeDeserializer() {return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));}// 配置@Beanpublic Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {return builder -> {builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());};}}

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

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

相关文章

代码随想录训练营第三十五期|第天15|二叉树part02|层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode…

DG怎样手动切主从-用普通命令方式(不用dg broker)

这里主库是orcl&#xff0c;从库是orclstd 一 将主库降为从库 1.1查看主库SWITCHOVER_STATUS的状态 #确认主库是否可以做switchover #不能切换的情况 SQL>SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS ------------------ SESSIONS ACTIVE 在这种…

别踩白块web小游戏

整体思路 1.设置一个游戏界面main&#xff08;最外面一圈方框&#xff09; 2.main内部放置一个容器container&#xff0c;容器非常长&#xff0c;且容器底部位于main的顶部 3.将容器内的黑块和白块事先处理好&#xff0c;并将黑块存储在黑块数组中 容器黑白块处理&#xf…

【开发问题记录】Nacos修改服务实例权重时报错

问题记录 一、问题描述1.1 产生原因1.2 产生问题 二、问题解决2.1 docker部署的nacos解决方案2.1.1 进入nacos容器2.1.2 查看当前目录2.1.3 进入data文件夹2.1.4 删除protocol文件2.2 本地部署的nacos 一、问题描述 1.1 产生原因 在运行项目时&#xff0c;在本地启动了一个服务…

vue3项目 使用 element-plus 中 el-collapse 折叠面板

最近接触拉了一个项目&#xff0c;使用到 element-plus 中 el-collapse 折叠面板&#xff0c;发现在使用中利用高官网多多少少的会出现问题。 &#xff08;1.直接默认一个展开值&#xff0c;发现时显时不显 2 . 数据渲染问题&#xff0c;接口请求了&#xff0c;页面数据不更新 …

js 截取指定字符后面/前面的所有字符串...

项目场景 在 JavaScript 中&#xff0c;你可以使用 substring() 或 substr() 方法来截取字符串中指定字符前面或后面的所有字符。 再配合**indexOf()**方法来判断字符所在的位置从而实现截取指定字符的前后字符串 解决方案&#xff1a; //js 截取指定字符后面/前面的所有字…

类激活映射详解

类激活映射&#xff08;CAM, Class Activation Mapping&#xff09;是一种常用于卷积神经网络&#xff08;CNN&#xff09;的技术&#xff0c;用来识别和解释模型在进行图像或时间序列分类任务时&#xff0c;哪些区域对最终分类决定起到了关键作用。下面&#xff0c;我将详细解…

大数据平台搭建2024(一)

一&#xff1a;基础配置 创建虚拟机并查出ip地址进行连接 ip a1.配置node01静态ip地址与主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加如下内容&#xff1a; BOOTPROTO"static" ONBOOTyes #根据虚拟机网卡信息配置 IPADDR192.168.200.141 NET…

360度VR全景汽车漫游展示让爱车者能感受真实的驾驶体验

小米汽车的惊艳亮相&#xff0c;让无数爱车族心潮澎湃。然而&#xff0c;对于因时间和地理限制无法亲临现场的人来说&#xff0c;这份激动或许带有些许遗憾。如今&#xff0c;有了3D虚拟看车软件&#xff0c;这一切不再是问题。 web3D开发公司深圳华锐视点通过运用尖端的web3D开…

IntelliJ IDEA2024 安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 IDEA&#xff08;Integrated Development Environment for Apache&#xff09; 是一款专为 Apache 开发者设计的集成开发环境。该软件提供了丰富的功能和工具&#xff0c;帮助开发者更高效地创建、调试和部署 Apache 项目。 主…

hot100 -- 链表(中)

不要觉得力扣核心代码模式麻烦&#xff0c;它确实比不上ACM模式舒服&#xff0c;可以自己处理输入输出 只是你对 链表 和 return 的理解不到位 &#x1f442; ▶ 屿前世 (163.com) &#x1f442; ▶ see you tomorrow (163.com) 目录 &#x1f382;两数相加 &#x1f6a9;删…

python 绘制六种激活函数(sigmoid、tanh、relu、softmax、relu、elu)

1、效果 2、实现代码&#xff08;带注释&#xff09; import numpy as np # 导入 numpy 库, 用于数学运算 import matplotlib.pyplot as plt # 导入 matplotlib.pyplot, 用于绘图 import matplotlib as mpl # 导入 matplotlib 库, 用于图形配置plt.rcParams[font.sans-se…

mysql奇葩问题union

单独执行第一条&#xff0c;有三条结果&#xff1b; union之后&#xff0c;只有一条结果&#xff1b; union自动的把重复数据合并了&#xff1b;

使用Python生成100到算术题

需求描述&#xff1a;生成100道包含加法、减法、乘法、除法题目的数学题。 import random import pandas as pddef generate_math_questions(num_questions, question_types[addition, subtraction, multiplication, division], difficultyeasy, range_start1, range_end10):&…

Vue基础使用之V-Model绑定单选、复选、动态渲染选项的值

这里要说明一下&#xff0c;在v-model 绑定的值是id还是value是和<option>中的v-bind保持一致的&#xff0c;如第四个&#xff0c;如果是 <option :value"op[1]" 那v-model绑定的就是数组第二项的值2&#xff0c;4&#xff0c;6 如果是 <option :va…

《AI编程类工具之一——CodeArts Snap》

一.简介 CodeArts Snap是一款基于华为云研发的智能开发助手&#xff0c;它覆盖软件开发的全生命周期&#xff0c;提供端到端的智能支持。该工具的核心功能包括代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码翻译、代码调试以及代码检查等八大方面&#…

软件开发的20条原则

原则是工作的准则,代表了许多人从经验中总结出来的集体智慧 源自《软件开发的201个原则》 需求 需要明确 需求是什么?需求有具体文档记录吗?需求经过多方评审了吗?需求合理吗?需求投入产出比如何?原则46:避免再需求分析时进行系统设计 需求分析:定义系统/软件的黑盒行…

Arduino通过I2C驱动MT6701磁编码器并读取角度数据

Arduino通过I2C驱动MT6701磁编码器并读取角度数据 &#x1f4cd;相关篇《Arduino通过Wire库读取AS5600编码器数据》 ✨测试了使用STM32硬件I2C扫描其地址失败。使用软件I2C可以。 &#x1f4d1;MT6701&#xff08;基于差分霍尔的磁性角度传感器芯片&#xff09;芯片特性简介 &…

WPF中DataGrid主从数据(父子数据)展示

在wpf中可以使用DataGrid控件,进行主从数据展示,也称父子数据展示。下面展示纯原生控件编码实现功能(样式自己可以根据需求进行修改)。 效果如下: 点击图标,展开和收缩可以自由的切换,也可以自己重新写一个样式,比如+,-或者类似图标的样式,都是可以的。 1.首先创建一…

spispispi

SPI C.. & C.. logic是SPI的控制逻辑&#xff0c;芯片内部进行地址锁存、数据读写等操作&#xff0c;都是由控制逻辑自动完成。控制逻辑的左边是SPI的通信引脚&#xff0c;这些引脚和主控芯片相连&#xff0c;主控芯片通过SPI协议&#xff0c;把指令和数据发送给控制逻辑&a…