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

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

1 安装Java SDK

官网地址:https://www.oracle.com/java/technologies/downloads/archive/

下载dmg,双击之后无脑安装即可。

bash 复制代码
# 进入 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
bash 复制代码
# 修改环境变量
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阿里云镜像加速:

bash 复制代码
# 进入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模板:

java 复制代码
#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模板:

java 复制代码
#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类
java 复制代码
@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());
        };
    }

}
相关推荐
小宋102111 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
bro_Java66611 小时前
链表进阶2:双向链表的构建
java·数据结构·链表
DianSan_ERP12 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
Joe_Wang512 小时前
【从0到1学习JVM · 13】点进JDK源码只有一个分号?搞懂本地方法栈与JNI机制
java·jvm·学习·本地方法栈
编码者卢布12 小时前
【App Service 】WebJobs 多实例实验:谁在运行,什么时候运行?
开发语言·python
kaixin_learn_qt_ing12 小时前
Qt抽屉窗体实现demo
开发语言·qt
quantdash_cc12 小时前
Python 获取实时行情后如何进行批量筛选?从全市场快照到策略候选池
开发语言·python·数据分析·量化交易·股票数据·quantdash
AI 算法大模型备案~当当12 小时前
各地备案数量怎么看:一份属地公告的认读与台账方法
java·数据库·人工智能
论文复现现场12 小时前
论文复现看到“RTX 3090 or higher”:显存、CUDA、batch size 与 OOM 怎么判断?
开发语言·pytorch·batch·cuda·rtx3090
智鸟科技GemeOpen开发者智能设备12 小时前
GemeOpen 智能音箱 GSSM0B - 播放控制(Java示例)
java·开发语言·智能音箱