IntelliJ-IDEA 使用笔记

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

在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”) ,在下面加上对应内容即可

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")

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

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

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

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

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).

常用快捷键

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

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

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

(3.5) java: cannot find symbol

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

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仓库 以及 其它几个备用的,配置如下:

<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

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找不到

正常的日志是这样

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
 %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导致系统运行变慢
  2. 1 在 /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions 中添加了 -XX:CompileThreshold=200000000 关闭 JIT compiler,关闭后CPU使用率明显降低
  3. Ali-Check 阿里巴巴代码扫描插件
    在 setting -> Editor -> Inspections 里,把除了 error 级别的,其它的都关掉,关闭后CPU使用率降低很多
  4. 禁用不用的插件 setting -> Plugins,把用不到的全禁用掉
  5. 修改 /Users/weikeqin1/Library/Application Support/JetBrains/IdeaIC2020.1/idea.vmoptions , 把堆内存调大 -Xms1024m -Xmx1024m
  6. 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 破解