IntelliJ IDEA
![](/i/l/?n=23&i=blog/1231428/202212/1231428-20221229110329231-1327700803.png)
配置IntelliJ IDEA后,就可以用它开发Java项目了,这里会手把手带领大家从头开始开发一个多模块的java项目
1. IntelliJ IDEA 开发Java项目的流程
- 新建项目(project)
- 新建模块(module)
- 新建包(package)
- 新建类(class)
- 运行/调试Java程序(Java Class)
关于项目、模块、包和类之间的关系
- 一个项目可以包含多个模块
- 一个模块可以包含多个包
- 一个包可以包含多个类
这就好比一个学校有多个年级,一个年级有多个班级,一个班级有多个学生
2. IntelliJ IDEA 新建项目
- 启动IntelliJ IDEA
点击程序坞的IntelliJ IDEA 打开IntelliJ IDEA
启动成功后会看到IntelliJ IDEA的欢迎窗口
2.依次点击Projects->New Project 创建项目
- New Project 创建新的项目
- Open 打开已有的项目
- Get from VCS 从版本控制系统获取项目
- 依次设置项目类型、项目名称和项目的路径
设置项目类型为Empty Project
设置项目名称为java
设置项目的路径为 ~/Documents/projects/java/ittimeline
需要注意的是项目路径不要包含中文和空格
然后点击Create创建项目后,系统会弹出IntelliJ IDEA想要访问文稿文件夹中的文件,点击好即可
-
项目创建成功
-
设置项目
首先点击右上角的齿轮,再点击Project Structure…就可以打开项目设置,快捷键是Command+;
![项目结构 项目结构](./images/1672094399735.png)
项目结构
Platform Settings的SDKs中,IntelliJ IDEA自动读取本地安装的Java17
如果想要集成其他版本的SDK,只需要点击加号(+)->Add JDK
然后选择其他JDK的安装目录
最后点击Apply即可
这样在IntelliJ IDEA中就集成了Java8和Java17两个不同版本的JDK了
Project Settings的Project中可以设置项目名称、SDK、语言级别和编译器输出目录
- 项目名称是java
- 项目SDK没有选择
- 语言级别是19
- 编译输出目录是~/Documents/projects/java/ittimeline/java/out
![默认项目设置 默认项目设置](./images/1672095209692.png)
默认项目设置
我们这里将项目SDK设置为Java8,语言级别也设置成8,通常情况下SDK和语言级别的版本保持一致
需要注意的是模块会使用项目默认设置,也就是新建模块后的SDK也是Java8,语言级别是8,编译输出目录是~/Documents/projects/java/ittimeline/java/out
在创建Project的时候,IntelliJ IDEA还会自动创建一个同名的Module
项目设置完成后点击OK关闭项目设置窗口
3. IntelliJ IDEA 新建模块
-
选中java项目,然后右键New Module
-
设置模块名称、模块路径、语言、构建系统、JDK
新建模块默认设置
由于之前在项目设置中设置SDK是Java8,因此新建模块时JDK默认就是Project SDK1.8
模块设置如下
- 模块名称:java-core
- 模块路径:~/Documents/projects/java/ittimeline/java
- 语言:Java
- 构建系统:IntelliJ
- JDK:Java17
- 取消勾选 Add sample code
模块设置好以后点击Create创建模块
然后IntelliJ IDEA 会为Java17创建索引,这样以后在搜索Java17提供的API时可以提高搜索效率,我们需要等待索引创建完成后再进行其他的操作
-
模块创建成功
-
模块设置
首先点击右上角的齿轮,再点击Project Structure就可以打开项目设置,快捷键是Command+;
在Project Setings的Modules中看到javac-core的Language Level继承Project的Language Level也就是Java8
由于后期会使用到Java17的新特性,因此将其改成Java17
模块设置完成后点击OK关闭项目设置窗口
4. IntelliJ IDEA 新建包
-
选择java-core模块的src目录,然后右键New Package
-
设置包名
输入 net.ittimeline.java.core.foundational.object然后回车
为什么要设置成net.ittimeline.java.core.foundational.object?其实有特别的含义
Java开发规范中规定包名必须是小写英文单词,多个单词之间使用.隔开
- net.ittimeline 表示 ittimeline.net域名反转过来的,如果你开发淘宝项目,那么包名开头就是com.taobao
- java.core 表示java语言,也就是存放Java语言相关的代码,例如基础语法、面向对象、集合、并发、网络相关API
- foundational 表示java基础语法 也就是存放java基础语法的内容,例如变量、数据类型、运算符、程序流程控制、数组
- object 表示对象 也就是存放第一个Java程序
新建包成功
包到底是什么?
我们可以在访达中打开包
然后你就会看到它的本质,其实就是文件夹,存放不同功能的Java源文件
5. IntelliJ IDEA 新建类
-
选中net.ittimeline.java.core.foundational.object包,然后右键New Java Class
-
设置类名
输入HelloWorld后回车会创建HelloWorld类,并且自动打开源文件HelloWorld.java
需要注意的是选择Class,至于Interface、Record、Enum、Annotation会在后期学习
HelloWorld类创建成功后,而且IntelliJ IDEA 还帮我们编写以下代码
package net.ittimeline.java.core.foundational.object;
public class HelloWorld {
}
- package net.ittimeline.java.core.foundational.object; 定义了HelloWorld类所在的包(也就是文件夹)
- public class HelloWorld {} 就是定义公共的类HelloWorld
![HelloWorld类创建成功 HelloWorld类创建成功](./images/1672096449789.png)
HelloWorld类创建成功
- 编写HelloWorld
package net.ittimeline.java.core.foundational.object;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("macOS Ventura &Java17&IntelliJ IDEA 2022.3.1 Ultimate");
}
}
不过在IntelliJ IDEA中编写Java代码相比一般的文本编辑器会更加高效
- 输入psvm或者main后回车就可以生成main方法
- 输入sout就可以生成打印语句System.out.println();
这是IntelliJ IDEA提供的Live Templates功能,可以在IntelliJ IDEA 设置窗口的Live Templates查看
首先点击右上角的齿轮,然后点击Settings 快捷键是Command+,
就可以打开设置窗口
然后在设置窗口中搜索Live Templates,并选择Java的Live Templates
看到Java的psvm Live Template你就知道为什么输入psvm可以生成main方法了
看到Java的sout Live Template你也就知道为什么输入sout可以生产打印语句System.out.println();了
至于其他的Live Templates我们会在后期学习
5. IntelliJ IDEA 运行Java程序
IntelliJ IDEA有四种方式运行Java程序
方式1:在编辑区右键选择Run运行,快捷键是control+Shift+R
如果快捷键不能使用,可能是和搜狗输入法冲突,禁用搜狗的快捷键即可
禁用图片转文字快捷键
方式2:点击Run窗口的绿色三角形按钮运行
方式3:点击main方法左边的绿色三角形按钮然后选择Run运行
点击main方法左边的绿色三角形按钮
然后选择Run运行
方式4:点击Toolbar的绿色三角形按钮运行
其中最常用的是方式4,因为位置一直是固定的。
不管是哪种运行方式,你都会在Run窗口中看到相同的运行结果
也就是打印输出macOS Ventura &Java17&IntelliJ IDEA 2022.3.1 Ultimate 并换行
6. IntelliJ IDEA 项目结构
目前为止这是我们的java项目结构
- java 项目名 存放0基础到Java高级开发工程师的内容(项目代码、文档等等)
- .idea 文件夹 存放项目的配置,例如项目版本控制配置、项目的编译配置、项目的编码配置、项目的模块配置等等,该目录是由IntelliJ IDEA创建,我们一般不会修改该目录下的文件内容
- java-core 模块名 存放的是java语言相关的内容,例如Java的基础语法、面向对象、高级API等等
- src 存放Java源文件、资源文件(html,css,js)、配置文件(application.yml)
- net.ittimeline.java.core 包名 存放Java语言相关的源文件
- java-core.iml 模块配置文件,每一个模块都会有一个模块配置文件,一般我们不会修改,该文件由IntelliJ IDEA创建
- src 存放Java源文件、资源文件(html,css,js)、配置文件(application.yml)
- out 存放项目编译输出的字节码文件、配置文件
- java.iml 模块配置文件,每一个模块都会有一个模块配置文件,一般我们不会修改,该文件由IntelliJ IDEA创建
- External Libraries 存放项目依赖的类库,目前只依赖了Java17