java开发的基本环境搭建

参考文章:

Maven基础&MyBatis

全网最完整Java学习笔记(基础篇)

JDK安装下载

下载jdk-17.0.12_windows-x64_bin.zip, 安装时可以选择安装地址,我的安装地址D:\IDEA\Java\jdk-17

安装完成后配置JDK17的环境变量:

1
2
3
新增系统变量:JAVA_HOME,值为D:\IDEA\Java\jdk-17(安装路径)
新增系统变量:CLASSPATH,值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,注意最前面的小黑点不能省.
在系统变量Path下新增两条配置:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin

其他版本安装差不多,下载地址Java downloads

Maven下载安装

进入Apache|Maven|Download Apache Maven ,找到files,选择需要的版本下载。

  • Binary是可执行版本,已经编译好可以直接使用。
  • Source是源代码版本,需要自己编译成可执行软件才可使用。

选择已经编译好的windows可执行版本进行安装:选择zip版本(linux选择tar.gz)

解压后,我放到了该路径 D:\IDEA\apache-maven-3.9.10

配置环境变量

1
2
新增系统变量:MAVEN_HOME,值为D:\IDEA\apache-maven-3.9.10(安装路径)
在系统变量Path下新增两条配置:%MAVEN_HOME%\bin

配置本地仓库

修改 D:\IDEA\apache-maven-3.9.10\conf\settings.xml 中的 <localRepository> 为一个指定目录作为本地仓库,用来存储jar包。

1
<localRepository>D:\IDEA\maven-repository-3.9.10</localRepository>

配置jdk

默认使用jdk1.4,太老,可能会出问题要手动配置:将下面代码加到<profiles >

1
2
3
4
5
6
7
8
9
10
11
12
 <profile>  
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</profile>

配置阿里云私服:

中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。

修改 conf/settings.xml 中的 <mirrors>标签,为其添加如下子标签:

1
2
3
4
5
6
7
8
9
10
11
12
13
   <mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- 或者 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

Java编译器:IDEA

下载安装

进入Other Versions - IntelliJ IDEA,选择需要的版本下载,安装一直点击下一步即可,只有两点需要注意:

设置安装路径:我的安装路径是D:\IDEA\IntelliJ IDEA 2025.1.3

创建桌面快捷方式:两个勾选的地方

​ Create Desktop Shortcut 下Intelli] IDEA Community Edition

​ Update PATH Variable下 Add “bin” folder to the PATH

安装完成之后重启就OK。

配置

注意:所有设置都必须要关闭项目后,再进行设置,这样才是全局设置。

先关闭项目再点击设置

设置UTF-8

File → Setting → Editor → File Coding → Global Encoding;Project Encoding;Default encoding for properties files → 选择 UTF-8

配置Maven路径

File → Setting → Build, Execution,Deployment → BuildTools → Maven

Maven home path:D:\IDEA\apache-maven-3.9.10
User settings file:D:\IDEA\apache-maven-3.9.10\conf\settings.xml
Local repository:D:\IDEA\maven-repository-3.9.10

Maven配置依赖和插件后自动刷新:

File → Setting → Build, Execution,Deployment → BuildTools Sync → project after changes in the build scripts → 勾选Any changes

安装插件

基础插件

Chinese(Simplified) Language Pack/中文语言包

用于汉化IDEA,官方已经加汉化做的很好了,例如checkout移位签出,rebase译为变基。当然习惯了英文可以继续用英文。

Alibaba Java Coding Guidelines

提供代码检查,对于不符合编程规范的代码,会进行提示:

Maven helper

安装后在代码中右键,可以选择Maven模块,会出现打包,编译等选择,另外Maven helper可以解决依赖冲突问题。

MybatisX

使用MybatisX插件后,对应的mapper.xml,mapper.java出现小鸟图标,编写接口定义方法后,会自动在xml中生成statement语句,提高Mybatis框架的开发效率。

RESTfulToolkit-fix

RestfulToolkit-fix是一套RESTful服务开发辅助工具集,可以根据URL直接跳转到对应的Controller方法定义,在Controller的方法上添加了能复制请求URL和方法参数的功能。

安装后可以通过ctrl+\快捷键,搜索url,插件会帮你找到url对应的Controller。

全局模糊匹配URL:

  • Windows快捷键: Ctrl + \ 或者 Ctrl + Alt + N。
  • MacOS快捷键: Command + \ 或者 Command + option + N。

Private Notes

用于在只读代码中添加注释,在阅读一些框架和中间件源码时使用比较方便。

在任何你想加注释的地方 按下Alt + Enter鼠标移出点击即可保存
已有私人注释 按下Alt + Enter即可快速编辑
Alt + p 可快速添加或者编辑私人注释
Alt + o 展示私人注释的其它操作
右键菜单私人注释查看操作

easy javadoc

首先安装插件后重启;

然后配置类注解:File → Setting → Other Setting → EasyDoc → EasyDocJavadoc → EasyDocClassTemplate

1
2
3
4
5
6
/**
* @Author: xxx
* @CreateTime: $DATE$
* @Description: TODO
* @Version: 1.0
*/

修改快捷键:File → Setting → plugins → Easy Javadoc → GenerateJavadoc(设置成,\)

在类上连按两次“\”,就会自动生成注释

常用快捷键

格式化:ctrl+alt+L

main方法psvm回车,输出sout回车,内容提示ctrl+alt+space。alt+insert生成构造、setget方法。

补全代码:Ctrl+Alt+v或.var或.for

例如写new Dog();按快捷键会自动补全声明Dog dog=new Dog();或者写new Dog().var回车会自动补全成Dog dog=new Dog();或者写lists.for回车会自动生成for(List list:lists){}

万能快捷键:alt+enter

获取警告、报错提示自动改正。

查找:ctrl+f

替换:ctrl+r

替换所有与选中内容相同的文本

ctrl+b:跟进

或者ctrl+鼠标左键、或者鼠标左键,跟进到该类的定义页面。如果选中的是标识符,可以查找页面内所有该标识符位置。

alt+左键:整列编辑

ctrl+d:复制光标行并粘贴

ctrl+x:删除光标行

Ctrl+h:查看该类继承关系:

ctrl+alt+m:抽取选中代码为方法

Ctrl+f12:查看类中所有方法。

评估表达式:ALT+F8

查看本地历史记录:

idea是会自动保存各文件历史记录的,右键文件-查看本地历史记录即可(Local History)

断点调试

  • 调试按钮:img
  • 运行按钮:img

普通断点:如果断点打在普通代码行上,点击“debug”会自动运行到该行暂停;

方法断点:如果断点打在方法上,点击“debug”会自动运行到该方法入口处暂停;

接口断点:如果断点打在接口方法,点击“debug”会自动运行到实现类对应方法入口处暂停;

字段断点:如果断点打在字段上,点击“debug”会自动运行到修改此字段的代码行处暂停(可以在断点处右键设置成访问时也暂停);

条件断点:在断点处右键,可以输入布尔类型的条件,例如i==0、user.getName()!=null&&”zhangsan”.equals(user.getName())。

示例:当i为10时暂停代码运行:

image-20250729145300708

异常断点:在异常时暂停代码运行。在断点处右键-更多,设置断点为异常断点,程序将在发生异常时暂停。

image-20250729145406958

调试

打断点后代码运行到这一步会停止:下面红色方框是最常用的两个调试按钮:

image-20250729145436909

蓝色代码行代表此时调试运行到这一行(这一行还没运行),能看到上一行的结果。

调试的五个核心图标分别是:

img

  1. “Step over”:步过。往下运行一行代码并跳过当前方法的调用。
  2. “Step into”:步入。进入方法内部并继续逐行执行。适用于自定义方法或第三方方法,但无法进入JDK方法的内部。注意如果蓝色光标行不是方法,则此按钮相当于step over。
  3. “Force step into”:强制步入(不常用)。强制进入方法的内部,即使常规的”Step into”操作无法进入方法内部时也可以使用。适用于无法通过常规方式进入的方法。例如Symtem.out.println()等JDK方法内部。
  4. “Step out”:步出。退出当前方法,即执行完当前方法后返回到调用该方法的位置。注意如果本方法是main方法,则将直接步出这个main方法
  5. “Resume Program”:运行到光标处。继续运行程序直到下一个断点位置或程序结束。可用于暂停状态下的程序恢复运行。

高级断点调试

丢帧(退帧)

退帧:回退到此方法被调用之前。

当我们 Debug 从 A 方法进入 B 方法时,通过降帧(退帧)可以返回到调用 B 方法前,这样我们就可以再一次调用 B 方法。

通常用于当快执行完 B 方法后,发现某个重要流程被跳过了,想再看一下,则此时可以先回退到 A 方法,然后再次进入 B 方法。

image-20250729145714384

强制返回

右键并点击“force return” 后,此方法栈将直接终止,恢复到上个方法栈。

使用场景:需要结束当前断点,并且不希望接下来的程序操作数据库时,使用强制返回。

注意:注意如果点击红色方格img或重新调试img虽然也是终止,但它其实是运行完剩余代码后再终止。

  • 强制返回:接下来的程序将不再继续执行。
  • 终止:接下来的程序将走完,然后再终止程序。

image-20250729145809847

stream流调试

在调试中,断点到达Stream流,往往直接会跳过,而我们有时候是需要看Stream流的处理逻辑的,所以就需要对Stream流进行调试。

调试方法:在stream流处打断点,debug后点击“trace current stream chain”:

示例:Stream流过滤出长度大于5单词:

1
2
3
4
5
6
7
8
9
10
11
public class Test {
public static void main(String[] args) {
// 创建一个列表
List<String> words = Arrays.asList("apple", "banana", "orange", "grape", "watermelon");
// 使用 Stream 进行过滤,只选择长度大于5的单词
List<String> filteredWords = words.stream()
.filter(word -> word.length() > 5)
.collect(Collectors.toList());
System.out.println("Filtered Words: " + filteredWords);
}
}

点击“跟踪当前流链”即可看到过滤效果:

image-20250729150027774

多线程调试

多线程环境,打断点并右键设置Thread或All:

  • Thread:暂停进入断点的线程,不影响其他线程执行。所有线程依次debug(即你如果给多个线程都加断点,第一个线程debug期间其他线程将保持断点暂停状态)
  • ALL:暂停全部线程。只debug第一个暂停线程(即你如果给多个线程都加断点,那么只第一个断点对应的线程会正常debug,其他线程会并发运行)

image-20250729145946541