沧海一粟

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。

0%

IntelliJ-IDEA 使用笔记

看到好多人说idea好用,自己也想试试。结果发现上手的时候比较难,一旦上手,真的是爱不释手。
比eclipse好用多了。
举一个很简单的例子。

1
2
3
在main方法里写了下面一行代码
double a;
a = args[2]; // idea 会在这行代码下标红线,提示有错误

(1) 下载及安装

http://www.jetbrains.com/idea/download/

推荐使用社区版,资源占用少,而且不用担心license问题,缺点是部分功能支持不好

(2) 配置

(2.1) 配置编码

全局编码设置
File -> Other Settings -> Default Settings -> Editor -> File Encodings

全局编码设置

工程编码设置
File -> Settings -> Editor -> File Encodings

项目编码设置

(2.2) 配置主题

File -> Settings -> Appearance & Behavior -> Appeaeance

项目编码设置

IDEA的主题可以自定义,也可从网上下载 http://www.riaway.com/theme.php 喜欢的主题,保存到本地。

主题是一个jar的包。导入到idea的方法如下:
file –> import setttings –>主题jar文件 –> 确认 –> 重启
这样就导入主题了。

同样的,自定义的主题也可以导出保存起来。什么时候想用就再导入。导出的方法如下:
file –> Export setttings –> 选中保存路径–> 确认

(2.3) 配置背景豆沙绿

File -> Settings -> Editor -> Color Scheme - > General

背景

(2.4) 配置字体

界面字体
File -> Settings -> Appearance & Behavior -> Appearance

程序字体
File -> Settings -> Editor -> Colors & Fonts -> Font

字体设置

(2.5) 配置JDK

File -> Other Settings -> Default Project Structure

(2.6) 配置Git

File -> Default Settings -> Version Control -> Git

Git配置

或者这样也可以
File -> Settings -> Version Control -> Git

(2.7) 配置maven

File -> Other Settings -> Default Settings -> Build, Execution, Deployment -> Build Tools -> Maven

Maven配置

(2.8) 配置代码风格

File -> Settings ->Editor -> Color Scheme - > Java

Comments -> JavaDoc -> Tag value 63, 95, 191 #3F5FBF
-> Text 63, 95, 191 #3F5FBF
-> Line comment 63, 127, 95 #3F7F5F

Keyword 127, 0, 85 #7F0055

String -> String text 42, 0, 255 #2A00FF

IDEA-Java-代码风格配置(Eclipse风格)

(2.9) 配置类注释模板和方法注释模板

File -> Settings -> Editor -> File and Code Templates -> Files 选择Class , Interface ,Enum 等等,我们都可以看到,在右侧区域中,在public class 上面,都有一行 #parse(“File Header.java”) ,在下面加上对应内容即可

1
2
3
4
5
6
7
8
9
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")

/**
* @author your_name
* @date ${YEAR}-${MONTH}-${DAY} ${TIME}
*/
public class ${NAME} {
}

设置IDEA运行时使用的JDK Change boot Java runtime for IntelliJ IDEA

安装 Choose Runtime 插件
安装完后 双击shift -> Actions -> 输入 Choose Runtime 选择自己想设置的JDK

IDEA默认使用的JDK是自带的 OpenJDK 11.0.7

1
2
3
4
5
ZBMAC-C02PGMT0F:bin weikeqin1$ /Applications/"IntelliJ IDEA CE.app"/Contents/jbr/Contents/Home/bin/java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment JBR-11.0.7.10-765.53-jfx (build 11.0.7+10-b765.53)
OpenJDK 64-Bit Server VM JBR-11.0.7.10-765.53-jfx (build 11.0.7+10-b765.53, mixed mode)
ZBMAC-C02PGMT0F:bin weikeqin1$

Please consider switching to the bundled Java runtime that is better suited for the IDE (your current Java runtime is 14.0.1+7 by Oracle Corporation).

常用快捷键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Alt + Enter    导入包,自动修正 
Ctrl + N 查找类
Ctrl + Shift + N 查找文件
Ctrl + Alt + L 格式化代码
Ctrl + Alt + O 优化导入的类和包
Alt + Insert 生成代码(如get,set方法,构造函数等)
Ctrl + E 或者 Alt + Shift + C 最近更改的代码
Ctrl + R 替换文本
Ctrl + F 查找文本
Ctrl + Shift + Space 自动补全代码
Ctrl + 空格 代码提示
Ctrl + Alt + Space 类名或接口名提示
Ctrl + P 方法参数提示
Ctrl + Shift + Alt + N 查找类中的方法或变量
Alt + Shift + C 对比最近修改的代码

Shift + F6 重构-重命名
Ctrl + X 删除行
Ctrl + D 复制行
Ctrl + / 或 Ctrl + Shift + / 注释(// 或者/…/ )
Ctrl + J 自动代码
Ctrl + E 最近打开的文件
Ctrl + H 显示类结构图
Ctrl + Q 显示注释文档
Alt + F1 查找代码所在位置
Alt + 1 快速打开或隐藏工程面板
Ctrl + Alt + left/right 返回至上次浏览的位置
Alt + left/right 切换代码视图
Alt + Up/Down 在方法间快速移动定位
Ctrl + Shift + Up/Down 代码向上/下移动。
F2 或Shift + F2 高亮错误或警告快速定位

代码标签输入完成后,按Tab,生成代码。
选中文本,按Ctrl + Shift + F7 ,高亮显示所有该文本,按Esc高亮消失。
Ctrl + W 选中代码,连续按会有其他效果
选中文本,按Alt + F3 ,逐个往下查找相同文本,并高亮显示。
Ctrl + Up/Down 光标跳转到第一行或最后一行下
Ctrl + B 快速打开光标处的类或方法

安装常用插件

https://plugins.jetbrains.com/idea

File -> Settings -> Plugins -> Browse repositories, 搜索想要的插件

Maven Helper

FindBugs-IDEA

CheckStyle-IDEA
通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。

GsonFormat
Java开发中,经常有把json格式的内容转成Object的需求,GsonFormat这款插件可以实现该功能。

Lombok

Grep Console

Free MyBatis plugin

codehelper.generator

Go

Python

(3) 遇到的问题

(3.1) Intellij IDEA 代码格式如何与eclipse保持风格一致

File -> Settings -> Plugins -> Browse repositories,
搜索Eclipse code formatter即可出现,点击右上角的Download and Install安装。
或者 可以直接在官网下载
安装之后重启Intellij,即可在Preferences->Eclipse Code Formatter找到配置项。

使用Intellij的格式化快捷键 Ctrl+shift+F 即可进行格式化。如果出错会输出提示到Event Log里,
如果看到 xxx formatted sucessfully by Eclipse code formatter 则表示格式化成功!

(3.2) 输入法输入框不跟随

我用的是 win7 64旗舰版 ideaIU-2017.1.1.win JDK 1.8.0_111
在把JDK升级 idea升级成ideaIU-2017.1.2.win后发现输入汉字的时候,输入法输入框不跟随,
最后发现使用JDK 1.8.0_111 1.8.0_162不会出现上述问题

(3.3) Intellij idea 不能识别 @Slf4j,@Getter ,@Setter注解,编译通过,报红提示:cannot resolve symbol

  网上搜了半天,试了很多次,最后在File -> Settings -> Build, Execution,Deployment -> Compoler -> Java Compoler里设置User compiler为Javac后解决了

  Lombok Plugin
  Settings -> Build,Execution,Deployment -> Maven -> Ignored Files

(3.4) log cannot be resolved

1
2
java.lang.Error: Unresolved compilation problem: 
log cannot be resolved

 发现程序能运行但是idea提示log cannot be resolved,感觉挺难受,把lombok卸载了,重新装一下,然后接解决了。

(3.5) java: cannot find symbol

1
2
3
Error:(345, 24) java: cannot find symbol
symbol: method getComment()
location: variable x of type cn.wkq.util.mysqlvo.ShowFullColumnsVo

原因:
  Lombok Requires Annotation Processing: Do you want to enable annotation processors? Enable

 解决办法
  File -> Settings -> Build,Execution,Deployment -> Annotation Processors
  选中 Enable annotation processing

(3.6) Failed to create assembly:Error creating assembly archive asm: Problem creating zip:Execution exception

1
Failed to execute goalorg.apache.maven.plugins:maven-assembly-plugin:2.5.5:single(make-assembly) on project web: Failed to create assembly:Error creating assembly archive asm: Problem creating zip:Execution exception (and the archive is probably corrupt but Icould not delete it): Java heap space -> [Help 1]

原因:maven编译时内存溢出导致 Java heap space

解决办法:
1、使用自己安装的maven
2、配置IDEA里Maven的配置
Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing VM options for importer -Xmx2048m
3、JDK版本设置高一点

(3.7) IntelliJ IDEA in Maven plugin could not update the index of

在使用14.1.X版本的IntelliJ时,更新Maven索引出现如下错误 Indexed Maven Repositories - type remore - Error - Idea 14.1.5,根据该链接内所述原因为:这是IntelliJ14.1.X版本中的一个BUG,并且会在下一个发布版本中进行修复,推荐将IntelliJ升级到版本15。

这个是由于 国内网络无法访问xx的原因,添加个国内maven镜像仓库就好了
在 maven 的 seeting.xml 文件里添加 镜像仓库,加上 aliyun的maven仓库 以及 其它几个备用的,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->

<!-- add aliyun mirror-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>

<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>

<!-- mvnrepository镜像,常用的maven中央仓库jar查询站点,可直接当maven镜像使用 -->
<mirror>
<id>mvn</id>
<mirrorOf>mvnrepository</mirrorOf>
<url>http://mvnrepository.com/</url>
</mirror>

<mirror>
<id>ui</id>
<name>Mirror from UK</name>
<url>http://uk.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>

</mirrors>

(3.8) idea闪退

没办法,只能看日志了
Finder -> Applications -> idea.app -> 右键 -> Show Package Content -> Contents -> MaxOS -> 双击 idea

idea安装目录 /Applications/IntelliJ IDEA CE.app
idea读取的配置文件 /Users/weikeqin1/Library/"Application Support"/JetBrains/IdeaIC2020.1/idea.vmoptions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bogon:MacOS weikeqin1$ pwd
/Applications/IntelliJ IDEA CE.app/Contents/MacOS
bogon:MacOS weikeqin1$
bogon:MacOS weikeqin1$ ./idea
2020-06-09 07:21:06.756 idea[38422:537321] Current Directory: /Applications/IntelliJ IDEA CE.app/Contents/MacOS
2020-06-09 07:21:06.759 idea[38422:537321] Value of IDEA_VM_OPTIONS is (null)
2020-06-09 07:21:06.759 idea[38422:537321] Processing VMOptions file at /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions
2020-06-09 07:21:06.761 idea[38422:537321] Done
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option UseConcMarkSweepGC; support was removed in 14.0
[YourKit Java Profiler 2019.8-b126] Log file: /Users/weikeqin1/.yjp/log/idea-38422.log
19.8-126 0.004: warning: obsolete option "onlylocal" ignored; see description of "listen" for alternative
19.8-126 0.004: Cannot start: Java version 14.0.1+7 is not supported. Please check whether a newer version of YourKit Java Profiler that supports it exists. You may also disable the version check by specifying the startup option '_no_java_version_check' at your own risk because we do not guarantee it would run trouble free.
bogon:MacOS weikeqin1$ open /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions
The files /Users/weikeqin1/Library/Application and /Applications/IntelliJ IDEA CE.app/Contents/MacOS/Support/JetBrains/IdeaIC2020.1/idea.vmoptions do not exist.
bogon:MacOS weikeqin1$
bogon:MacOS weikeqin1$

我的闪退是因为 /Users/weikeqin1/Library/"Application Support"/JetBrains/IdeaIC2020.1/idea.vmoptions 配置有问题,有个jar找不到

正常的日志是这样

1
2
3
4
5
6
7
8
9
bogon:MacOS weikeqin1$ pwd
/Applications/IntelliJ IDEA CE.app/Contents/MacOS
bogon:MacOS weikeqin1$
bogon:MacOS weikeqin1$ ./idea
2020-06-09 07:53:38.677 idea[49207:582319] allVms required 1.8*,1.8+
2020-06-09 07:53:38.683 idea[49207:582323] Current Directory: /Applications/IntelliJ IDEA CE.app/Contents/MacOS
2020-06-09 07:53:38.685 idea[49207:582323] Value of IDEA_VM_OPTIONS is (null)
2020-06-09 07:53:38.685 idea[49207:582323] Processing VMOptions file at /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions
2020-06-09 07:53:38.688 idea[49207:582323] Done

(3.9) ideaCPU占用率高

想要解决问题,首先得知道原因。
./Applications/IntelliJ IDEA CE.app/Contents/MacOS/idea 启动idea 查看启动日志
排查原因需要一些工具。 idea自带的工具,打开 help -> Activity Monitor,监控 CPU 的占用率,找出会导致 CPU
查看日志 idea.log

根据上面的分析,导致IDEA CPU占用了高的原因有以下几种

  1. CPU 占用最高的是
  2. Ali-Check
1
2
3
4
5
6
7
8
9
10
 %CPU  Subsystem

285.7 <Process total CPU usage>
172.3 <JIT compiler>
25.4 <unidentified: ApplicationImpl pooled thread>
14.2 <unidentified: JobScheduler FJ pool>
12.4 Plugin Kotlin: kotlin.cli.common.arguments (in org.jetbrains)
9.5 vfs.impl.local (in com.intellij.openapi)
9.3 <Activity Monitor>
8.5 progress.impl (in com.intellij.openapi)

解决办法如下:

  1. 解决JIT compiler CPU占用率高
    当codeCache耗尽时,如果codeCache占用内存没有被回收,就会导致编译线程无法继续,并且消耗大量cpu导致系统运行变慢
    1.1 在 /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions 中添加了 -XX:CompileThreshold=200000000 关闭 JIT compiler,关闭后CPU使用率明显降低
  2. Ali-Check 阿里巴巴代码扫描插件
    在 setting -> Editor -> Inspections 里,把除了 error 级别的,其它的都关掉,关闭后CPU使用率降低很多
  3. 禁用不用的插件 setting -> Plugins,把用不到的全禁用掉
  4. 修改 /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions , 把堆内存调大 -Xms1024m -Xmx1024m
  5. intellij idea关闭重复代码提醒

References

[1] IDEA Settings
[2] IDEA 2017.1 EAP
[3] Intellij IDEA设置忽略部分类编译错误
[4] Intellij使用心得(四) – 导入Eclipse的代码格式化文件
[5] IDEA使用–字体、编码和基本设置
[6] IDEA右键新建时,选项没有Java class
[7] Intellij IDEA运行前不检查其他类的错误
[8] Intellij IDEA 15中文输入框不跟随怎么办
[9] 好烦啊,IDEA输入中文时输入法候选词框不跟随光标
[10] IntelliJ Idea 实用插件推荐
[11] IntelliJ IDEA(2017)安装和破解
[12] Intellij idea 不能识别 @Slf4j,@Getter ,@Setter注解,编译通过
[13] IDEA项目左边栏只能看到文件看不到项目结构
[14] 使用IntelliJ IDEA查看类的继承关系图形
[15] 使用lombok 找不到方法
[16] idea中字体颜色设置成类似eclipse的方案
[17] IDEA的这八条配置你一定要改
[18] IntelliJ IDEA中Maven插件无法更新索引之解决办法
[19] switching-boot-jdk
[20] Mac下IDEA无法启动的问题的解决
[21] 关于对 IDEA 打字卡顿(CPU 占用率高)的一些尝试和解决方案
[22] 解决最新版Idea 在mac上cpu占用超过300%问题
[23] Intellij Idea cpu 100% 卡顿 解决办法
[24] Pycharm、IntelliJ IDEA、PhpStorm等一系列工具注册码
[25] 亲测的IntelliJ IDEA 2020.1 激活码, IDEA 注册码,IDEA 破解