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
     * 服务端返回给客户端内容
     * */
    @Bean
    public LocalDateTimeSerializer localDateTimeSerializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /*
     * 反序列化内容
     *   String -> LocalDateTime
     * 客户端传入服务端数据
     * */
    @Bean
    public LocalDateTimeDeserializer localDateTimeDeserializer() {
        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }


    // 配置
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
        };
    }

}

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

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

相关文章

短剧分销系统:引领影视娱乐新潮流,开启内容变现全新模式!

近年来&#xff0c;随着互联网的飞速发展和人们生活节奏的加快&#xff0c;短剧项目在我国逐渐崭露头角&#xff0c;并在短时间内吸引了大量观众和投资者的目光。短剧以其时长短、剧情紧凑、制作精良等特点&#xff0c;迅速在视频市场中占据了一席之地。 一、短剧项目发展现状…

vue学习日记22:非父子通信(拓展)-provideinject

一、概念 二、实践 代码 App <template><div class"app">我是APP组件<button click"change">修改数据</button><SonA></SonA><SonB></SonB></div> </template><script> import SonA …

【C++进阶】详解C++类型转换IO流

C类型转换及IO流 一&#xff0c;C语言的类型转换方式二&#xff0c;C的四种强制类型转换方式2.1 static_cast2.2 reinterpret_cast2.3 const_cast2.4 dynamic_cast 三&#xff0c;C语言的输入和输出四&#xff0c;C的标准IO流五&#xff0c;C文件IO流总结 这一节我们来讲解 C的…

`Spring Cloud OpenFeign`底层实现原理

Spring Cloud OpenFeign工作原理 一 、简介 OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解&#xff0c;如RequesMapping等等。 OpenFeign的FeignClient可以解析SpringMVC的RequestMapping注解下的接口&#xff0c;并通过动态代理的方式产生实现类&#xff…

【Git】初识 Git

文章目录 1. 提出问题2. 如何解决&#xff1f;版本控制器3. 注意事项 1. 提出问题 不知道你工作或学习时&#xff0c;有没有遇到这样的情况&#xff1a;我们在编写各种文档时&#xff0c;为了防止文档丢失、更改失误、失误后能恢复到原来的版本&#xff0c;不得不复制出一个副…

Apifox接口测试教程(一)接口测试的原理与工具

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

「GO基础」GO程序组成要素

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

力扣爆刷第119天之CodeTop100五连刷81-85

力扣爆刷第119天之CodeTop100五连刷81-85 文章目录 力扣爆刷第119天之CodeTop100五连刷81-85一、14. 最长公共前缀二、718. 最长重复子数组三、169. 多数元素四、662. 二叉树最大宽度五、128. 最长连续序列 一、14. 最长公共前缀 题目链接&#xff1a;https://leetcode.cn/pro…

腾讯清华联合提出图像到视频生成方法-Follow-Your-Click:点击图像并加上简单提示词就可让图像动起来!

Follow-Your-Click只需单击一次和简短的提示就可以让图像的某一部分动起来&#xff0c;还支持不同的动作表达&#xff0c;比如微笑&#xff0c;悲伤&#xff0c;跳舞…… 相关链接 论文链接&#xff1a;https://arxiv.org/abs/2403.08268 项目链接&#xff1a;https://github…

【每日刷题】Day16

【每日刷题】Day16 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 2. 160. 相交链表 - 力扣&…

IGBT基本工作原理、主要参数及作用

IGBT是一种三端子的半导体开关器件&#xff0c;栅极&#xff0c;集电极和发射极。它结合了MOSFET的高输入阻抗和双极型三极管的低导通压降特性&#xff0c;广泛应用于变频器、电动汽车、电力传输等领域。 工作原理 IGBT由N沟道MOSFET和PNP双极型晶体管组成&#xff0c;其导通和…

前端ocr技术:electron+vue3中使用tesseract插件识别图片中字符

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、electron各种csp问题二、试用插件总结 前言 项目需要ocr技术识别图片中的中文字符&#xff0c;本来这部分是后端的工作&#xff0c;但是因为各种原因&#xff0c;决定前端也做一个版本。 在ai时代之前&#xff0c;o…

conda新建环境报错An HTTP error occurred when trying to retrieve this URL.

conda新建环境报错如下 cat .condarc #将 .condarc文件中的内容删除&#xff0c;改成下面的内容 vi .condarc channels:- defaults show_channel_urls: true default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.…

如何评估一个RAG(检索增强生成)系统

本文首发自博客文章 如何评估一个RAG&#xff08;检索增强生成&#xff09;系统 RAG 概念最初来源于 2020 年 Facebook 的一篇论文&#xff0c;这是 Facebook 博客对论文内容的进一步解释 &#x1f449;《检索增强生成&#xff1a;简化智能自然语言处理模型的创建》。大家都知…

Vitis HLS 学习笔记--readVec2Stream 函数-探究

目录 1. 高效内存存取的背景 2. readVec2Stream() 参数 3. 函数实现 4. 总结 1. 高效内存存取的背景 在深入研究《Vitis HLS 学习笔记--scal 函数探究》一篇文章之后&#xff0c;我们对于scal()函数如何将Y alpha * X这种简单的乘法运算复杂化有了深刻的理解。本文将转向…

商家转账到零钱全攻略:开通、使用、区别与常见问题解答

商家转账到零钱是什么&#xff1f; 【商家转账到零钱】可以说是【企业付款到零钱】的升级版&#xff0c;商家转账到零钱可以为商户提供同时向多个用户微信零钱转账的能力&#xff0c;支持分销返佣、佣金报酬、企业报销、企业补贴、服务款项、采购货款等自动向用户转账的场景。…

8个Python高效数据分析的技巧

这篇文章介绍了8个使用Python进行数据分析的方法&#xff0c;不仅能够提升运行效率&#xff0c;还能够使代码更加“优美”。 1 一行代码定义List 定义某种列表时&#xff0c;写For 循环过于麻烦&#xff0c;幸运的是&#xff0c;Python有一种内置的方法可以在一行代码中解决…

MDC使用手册精讲

MDC 背景&#xff1a; 线上排查问题时&#xff0c;请求在多个微服务之间进行调用&#xff0c;并发量较大的情况下&#xff0c;想跟踪某一个请求的链路&#xff0c;是需要花费一些时间才能梳理出来&#xff0c;而且还依赖于你的业务字段。而我们需要的是快速定位&#xff0c;快…

SpringSecurity登录时在哪里调用我们自定义的UserDetailsServiceImpl

SpringSecurity登录时在哪里调用我们自定义的UserDetailsServiceImpl 1、请求login方法 2、将用户的用户名和密码封装成一个对象&#xff0c;以便进行后续的认证操作 3、执行认证操作 4、调用providermanager类的authenticate 5.进入这一步就开始跟我们自定义实现的UserDet…

【云计算】云数据中心网络(四):IPv6 网关

云数据中心网络&#xff08;四&#xff09;&#xff1a;IPv6 网关 1.什么是 IPv6 网关2.IPv6 网关设计思路3.IPv6 网关的主要应用场景3.1 IPv6 私网通信3.2 IPv6 互联网通信3.3 IPv6 互联网通信&#xff08;仅主动访问&#xff09; 1.什么是 IPv6 网关 2017 年&#xff0c;中国…