IntelliJ IDEA使用笔记
IntelliJ IDEA使用笔记
IntelliJ IDEA 简体中文专题教程
https://github.com/judasn/IntelliJ-IDEA-Tutorial
IntelliJ IDEA 推荐设置讲解
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/settings-recommend-introduce.html
基础
facets
Facets 表示这个 module 有什么特征,比如 Web,Spring 和 Hibernate 等;
artifact
Artifact 是 maven 中的一个概念,表示模块的打包产出、制品,例如 war exploded、war、jar、ear 等等
一个 module 有了 Artifacts 就可以部署到应用服务器中了
插件
Settings -> Plugins -> Search in repositories 输入插件名称搜索安装。
Maven Dependency Helper
查看 pom 的冲突依赖,解析依赖树
https://plugins.jetbrains.com/plugin/12041-maven-dependency-helper
Maven Dependency Updater
查看可更新的 maven 依赖
https://plugins.jetbrains.com/plugin/11261-maven-dependency-updater
VisualGC 可视化gc
translation 翻译插件
CMD+Ctrl+I 打开翻译对话框
CamelCase
搜索安装 CamelCase 插件
快捷键 Alt+Shift+u 在 kebab-case(中线), SNAKE_CASE(下划线大写), PascalCase(驼峰首字母大写), camelCase(驼峰首字母小写), snake_case(下划线小写), space case 之间切换。
还可以在配置项 Editor -> Camel Case 中禁用不需要的命名方式以及编辑顺序。
MyBatis Log Plugin
https://github.com/kookob/mybatis-log-plugin
把 mybatis 输出的sql日志还原成完整的sql语句。
将日志输出的sql语句中的问号 ? 替换成真正的参数值。
通过 “Tools -> MyBatis Log Plugin” 菜单或快捷键 “Ctrl+Shift+Alt+O” 启用。
点击窗口左边的 “Filter” 按钮,可以过滤不想要输出的sql语句。
点击窗口左边的 “Format Sql” 按钮,可以格式化输出的sql语句。
选中console的sql日志,右击 “Restore Sql from Selection” 菜单可以还原sql语句。
前提条件:输出的sql日志必须包含”Preparing:”和”Parameters:”才能正常解析。
原理是解析 mybatis 打出的 debug 日志,把其中的预编译sql和参数组合起来,所以使用此插件必须开启debug级别日志才行。
开启debug日志后,每条mybatis sql都会打出类似如下的日志
2019-06-03 12:04:40,412 [DEBUG] [XNIO-1 task-1] com.masikkk.mapper.UserMapper.countUserByUserUuids [145]: ==> Preparing: SELECT ur.user_uuid, COUNT(*) AS amount FROM user_register ur INNER JOIN user_type ut ON ur.user_type_id = ut.id WHERE ur.user_uuid IN ( ? ) AND ut.type IN ( ? ) GROUP BY ur.user_uuid
2019-06-03 12:04:40,413 [DEBUG] [XNIO-1 task-1] com.masikkk.mapper.UserMapper.countUserByUserUuids [145]: ==> Parameters: 6824186360112128(Long), 4(Byte)
2019-06-03 12:04:40,428 [DEBUG] [XNIO-1 task-1] com.masikkk.mapper.UserMapper.countUserByUserUuids [145]: <== Total: 1
在 mubatis log pulgin 中会将其组装为如下完整sql,方便直接拷贝出来执行
SELECT ur.user_uuid, COUNT(*) AS amount
FROM user_register ur
INNER JOIN user_type ut
ON ur.user_type_id = ut.uid
WHERE ur.user_uuid IN ( 6824186360112128 ) AND ut.type IN ( 4 ) GROUP BY ur.user_uuid;
ideavim
JetBrains/ideavim
https://github.com/JetBrains/ideavim
Alt+CMD+V 打开/关闭VIM模拟机,但此快捷键与Idea重构快捷键“提取变量”冲突,可以通过菜单 Tool -> Vim Emulator 打开或关闭VIM模拟器
IdeaVim插件使用技巧
https://kidneyball.iteye.com/blog/1828427
Lombok
定位到 File > Settings > Plugins
点击 Browse repositories…
搜索 Lombok Plugin
点击 Install plugin
重启 IDEA
grep console
krasa/GrepConsole
https://github.com/krasa/GrepConsole
利用grep-console插件使Intellij idea显示多颜色调试日志
https://blog.csdn.net/ruglcc/article/details/73844044
Rainbow Brackets
Rainbow Brackets
彩虹颜色的括号 看着很舒服 敲代码效率变高
https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
或者直接在IDEA Plugin中搜索即可。
Material Theme UI
idea 图标美化
idea中搜索 Material Theme UI 安装即可
https://github.com/ChrisRM/material-theme-jetbrains
常用快捷键
快捷键模式设为MacOS/IDEA classic
设置 -> keymap -> 选择 IntelliJ IDEA classic
Mac 上还是应该使用 MacOS 版本的快捷键
CMD+反引号 在多个打开的IDEA进程间切换
CMD+, 打开 Preferences 设置窗口
Windows:Ctrl+Alt+S
Mac: CMD+,
打开 Settings -> Preferences 设置窗口
CMD+; 打开 ProjectStructure 项目设置窗口
Windows:Ctrl+Shift+Alt+S
Mac: CMD+;
打开 File -> Project Structure 项目设置窗口
CMD+F4 关闭当前文件
CMD+F3/Alt+G 下一个选中的单词
IDEA Classic 快捷键中 Ctrl+F3(CMD+F3),Find Word at Caret,参照选中的Word快速定位到下一个,相当于Eclipse中的Ctrl+K
macOS 版快捷键中默认没有这个,搜索 Next occurrence of the word at caret 设置此快捷键,默认 CMD+F3 是 bookmarks 的快捷键,改用 Alt+G
CMD+F2 停止Stop
CMD+F8 添加/删除断点
Ctrl+Shift+D debug启动当前光标所在方法
Ctrl + Shift + F9
Ctrl+Shift+R run启动当前光标所在方法
Ctrl + Shift + F10
Ctrl+Shift+J 合并为一行
Shift+F3 上一个选中的单词
Shift+F3,Move to Previous Occurrence,跳转到上一个选中的单词,相当于Eclipse中的Shift+K
Shift+F6 重命名
或者选中后鼠标右击 -> Refactor -> Rename
文件上点右键 -> Refactor -> Rename 输入新的文件名,IDEA会自动更新其他文件的引用
Shift + Enter 光标下新增一行
CMD + Alt + Enter 光标上新增一行
Windows :Ctrl + Alt + Enter
Mac:CMD + Alt + Enter
Shift+鼠标滚轮 水平滚动
CMD+B 转到方法/变量的接口或定义处
CMD+B/CMD+左键点击 进入光标所在的方法/变量的接口或是定义处
如果当前已经在方法/变量的定义处,CMD+B/CMD+左键点击会 转到 被调用处,如果有多个调用处会弹出一个列表,相当于 Alt + F7
如果当前方法有接口定义,CMD+B/CMD+左键点击 会跳转到接口定义处,而不会直接跳转到实现类中
CMD+Alt+B 转到方法实现处(跳过接口)
CMD+Alt+B 跳转到实现处,在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口
如果当前在接口定义处,CMD+Alt+B 也会跳转到实现类中的对应方法上。
如果当前所在的方法没有接口,就相当于 CMD+B
CMD+U 实现类/方法跳转到接口
如果当前在方法上,可跳转到接口中的对应方法。
如果当前在类上,可跳转到它实现的接口,实现了多个接口时会让选择
CMD+1 打开/关闭Project窗口
CMD+7 打开/关闭structure窗口
类似Eclipse中的Outline
打开View -> Tool Windows -> Structure
CMD+9 打开/关闭版本控制git窗口
CMD+T 更新代码(git pull)
CMD+K 打开git commit 窗口
CMD+Shift+K 打开git push 窗口
CMD+Alt+Z 打开git revert 窗口
Ctrl+N 打开Generate窗口
Ctrl+J 快速查看文档
相当于鼠标悬浮效果,当vim模式下不想使用鼠标时,可以使用Ctrl+J显示光标下变量的快速文档
CMD+R 打开搜索替换界面
Ctrl+Tab 在打开的Tab间切换
Ctrl + Tab,或CMD+Alt+Right,在最近打开的2个标签间跳转
如果按下Ctrl+Tab后松开Tab但Ctrl不松开,会弹出一个对话框显示当前打开的文件和功能视图,然后继续按Tab可在显示项中选择切换到哪个文件。
CMD+G 跳转到指定行
Ctrl + G
mac CMD + G
CMD+E 最近文件
可方便找到最近关闭的文件
CMD+Alt+L 格式化代码
或菜单中选择 Code -> Reformat Code
CMD+[/] 代码块跳转
Ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处
Ctrl+[ 同上,快速跳至代码块的开始出
CMD+Shift+F 全局搜索
classic 快捷键: Ctrl + Shift + F
macOS 快捷键: CMD+Shift+F 打开搜索窗口,或者通过点击 Edit–>Find–>Find in files 打开搜索窗口
如果装了 搜狗输入法 ,Ctrl+Shift+F 也是 搜狗输入法的简繁体切换快捷键,可以在搜狗中设置禁用这个快捷键。
CMD+Shift+R 全局替换
全局替换和全局搜索类似,只是多了替换操作。
classic 快捷键: Ctrl + Shift + R
macOS 快捷键: CMD+Shift+R 打开窗口,或者通过点击 Edit–>Find–>Replace in files 打开窗口。比搜索窗口多了填写替换内容的输入框。
上面是要搜索的内容,下面是要替换为的内容。
CMD+W/Alt+Up 递进式选中单词/行/代码块
递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围
在 idea 快捷键配置里叫 Extend Selection
MacOS 快捷键:Ops + Up 上箭头
IDEA Classic 快捷键:CMD+W
Windows:Ctrl+W
CMD+D 复制当前行(块)到下一行
若当前没选中,则复制当前行到下一行
若当前选中了代码块,则复制选中的块到其后
CMD+Shift+F12 编辑器最大化
Windows:
Ctrl + Shift + F12 编辑器最大化
Mac:
command + shift + F12 编辑器最大化
Ctrl+Alt+Shift+U 查看diagram继承关系图
Ctrl+Alt+H 显示当前方法的调用层次
IntelliJ IDEA中可以在主菜单中选择Navigate | Call Hierarchy命令(快捷键Ctrl+Alt+H)查看一个Java方法调用树(caller和callee两个方向),但是不像Eclipse那样可以查看类成员变量的调用树。
IDEA的查询引用、调用关系图的功能
https://www.cnblogs.com/ghj1976/p/5382455.html
Ctrl+ALT+O 优化导入
优化导入快捷键
Windows: ctrl + alt + o
mac: ctrl + alt + o
Alt+F7 查看方法变量使用情况
IntelliJ IDEA的”Find Usage”可以查看一个Java类、方法或变量的直接使用情况。
Alt+F12 打开/关闭终端窗口
View -> Tool Windows -> Terminal
快捷键Alt+F12
Alt+F12 变成了打开声音设置的快捷键
原因:F1~F12默认变成了特殊功能键,例如调节亮度,调节音量等
解决:系统偏好设置 -> 键盘 -> 键盘 勾选“将F1、F2等键用作标准功能键”即可
CMD+Alt+T 用trycatch等语句包围选中的代码
默认选中当前行代码
Command + Option + T 包围代码(使用 if..else, try..catch, for, synchronized 等包围选中的代码)
或者说提取选中的代码到try catch等语句块中
CMD+Alt+M 提取选中内容为方法
CMD+Alt+V 提取选中内容为变量
先选中要抽取变量的代码
CMD+Alt+N 内联变量
选中内部类+F6 提取内部类为独立类
Move Inner Class…
剪切复制黏贴整行
下面的操作都是在未选择内容时,如果选择了内容,则剪切/复制/黏贴的都是选择的部分
Ctrl + X(Command+X) 剪切光标所在的当前行,并复制到剪切板中
Ctrl + C(Command+C) 复制光标所在的当前行到剪切板
Ctrl + D(Command+D) 复制光标所在的当前行到下一行,只适用于复制当前行代码到下一行
Ctrl + V(Command+V) 黏贴刚才剪切或复制的一行
CMD+Shift+u 大小写切换
mac上是shift+command+u
IntelliJ IDEA 快捷键 - 极客学院
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/keymap-introduce.html
前进后退快捷键失效
window中由于使用了Intel处理器,它已经占用了Ctrl+Shift+left/right作为屏幕旋转的快捷键,要么修改Intel的快捷键,要么修改IDEA的快捷键。
IntelliJ IDEA Ctrl+Alt+Left/Right 失效
https://blog.csdn.net/lixwjava/article/details/45438503
Alt+Insert插入maven依赖
在pom文件中 Alt+Insert 后弹出菜单,选择dependency 或Plugin,可搜索添加依赖
Alt+CMD+Z 撤销工作区git修改
相当于 git checkout -- file
命令
debug调试
显示集合中的空元素
默认不显示集合中的空元素
Preferences -> Build, Execution, Deployment -> Debugger -> Data Views -> Java
或者
debug调试时,在变量名上点右键,选择 Customize Data Views
打开 Customize Data Views 视图
去掉勾选 Hide null elements in arrays and collections
debug查看静态变量
debug调试时,在变量名上点右键,选择 Customize Data Views
打开 Customize Data Views 视图
勾选 Static fields 和 Static final fields
Evaluate Expression执行表达式和临时代码Alt+F8
Evaluate Expression 计算表达式或执行一段临时代码,并且其中可访问当前debug上下文的变量,非常实用的debug功能
Evaluating Expressions
https://www.jetbrains.com/help/idea/evaluating-expressions.html
IDEA debug技巧
在Intellij IDEA中使用Debug
https://www.cnblogs.com/chiangchou/p/idea-debug.html
idea 高级调试技巧
http://www.cnblogs.com/yjmyzz/p/idea-advanced-debug-tips.html
Trace Current Stream Chain 流debug
先在 stream 表达式第一行打个断点,断点到达后点击 “Trace Current Stream Chain”,进入流跟踪调试窗口,可查看每个链式调用步骤的数据。
条件断点
断点上点右键,可以在条件框中引用断点前的变量,设定各种条件。
比如下面图中设置当user的手机号为指定的手机号时,断点生效:
条件断点
忽略所有断点
打开View BreakPoints面板,快捷键shift + command + F8,勾选的断点就是当前生效的,不勾选的就是当前忽略的,也可以批量删除。
Force Return 强制方法返回
先在 return 语句上打断点,断点到达后,在 debugger 面板 Frames 中选择当前方法(就是栈顶第一个),右键,Force Return,填入自定义返回值,可以是表达式,点OK,F9 继续。
线程断点
断点上直接右键设置
把 All 改为 Thread。如果点了 Make Default ,那么后续加上的断点都是 Thead 设置,之前加上的断点不影响。
然后在 debug 对话框中选中要调试的线程,就只在此线程中单步,否则每个 next step 都会在不同线程间跳转。
debug快捷键
F7 :在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内, 如果该方法体还有方法,则不会进入该内嵌的方法中;
F8 :在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内;
F9 :在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上。
IntelliJ IDEA常用快捷键汇总
https://blog.csdn.net/wei83523408/article/details/60472168
IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)
https://blog.csdn.net/deniro_li/article/details/72902621
Remote Debug
打开Run -> Edit Configurations… -> 打开Run/Debug Configurations配置界面
点左边”+”号来创建一个新的Run/Debug配置
选择配置类型为Remote,即新建一个远程debug配置
Host填入服务器IP,Port填入服务器配置的debug端口,比如下面配置debug端口为8889
# Sample JPDA settings for remote socket debugging
JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8889,server=y,suspend=n"
各参数解释:
-Xdebug是通知JVM工作在DEBUG模式下
-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。
server参数是指是否支持在server模式的VM中.
onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选
suspend指明,是否在调试客户端建立起来后,再执行JVM。
onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.
-Djava.compiler=NONE 远程调试时禁用JIT
远程调试建议禁用JIT -Djava.compiler=NONE
为了加快debug的速度
一般debug程序的时候,只是关注其中的一部分代码,而且大部分情况下是设置断点,然后单步执行,而JIT的编译单位是class,只要我们执行了class里面的代码,JIT就会对整个class进行编译,而我们实际执行的代码一般都是其中的一部分代码,所以从整个时间效率上来看,采用JIT反而更费时间。也就是说在JVM远程调试这个事情上,禁用JIT(只使用转译器,解释一行执行一条)更合理,所以通过-Djava.compiler=NONE来禁止JIT
终端Terminal/控制台Console
控制台历史行数限制
Preferences -> Editor -> General -> Console
修改 Console commands history size,默认 300
修改Terminal字体
打开属性对话框,选择Editor–>Color Scheme–>Console Font
重启打开Terminal即可生效
修改默认Terminal为/bin/zsh
File, Other Settings, Default Settings, Tools, Terminal
Shell Path 默认值是 /bin/bash, 改为 /bin/zsh
控制台输出自动换行
Setting->Editor->General->Console,勾选“Use soft wraps in console”
编辑/提示
类注释模板
Preferences -> Editor -> File and Code Templates -> Files -> Class
scheme 是模板的生效范围, default 为设置 IDEA 模块, project 是设置当前项目模板
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/**
*
* @author masikkk.com
* @date ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
注意两点
1 为了区别公司项目的作者信息和自己项目的作者信息,最好注释模板设置为 project 范围
2 设置 Class 注释模板后,顺便设置 Interface, Enum 的类注释模板
4个空格代替tab
第一次编辑从Eclipse转过来的源码时,会提示This file is indented with tabs instead of 4 spaces,然后给出选项OK,Indent with 4 spaces,Show Settings,应该选择Indent with 4 spaces,即使用4个空格代替Tab
File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents,不勾选Use tab character
阿里巴巴java开发手册 (三)格式规约
【强制】 缩进采用 4 个空格,禁止使用 tab 字符。
说明: 如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。 IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
显示Tab和空格
File -> Settings -> Editor -> General -> Appearance
勾选 Show whitespaces 以及下属的3个子项,即可在代码编辑器中显示tab和空格,方便区分。
自动代码补全(提示)
这个功能应该是自动就打开的,如果没有的话,检查一下 Settings > Editor > General > Code Completion 里面的设定。基本上 Basic Completion, Smart Type Completion, 和 Autopopup Code Completion 这三个是要打开的。
Case sensitive completion,可以设置只第一个字母敏感、完全敏感或者不敏感。
忽略大小写补全代码
Editor -> General -> Code Completion
Case sensitive completion 选择 None
自动import无歧义的包
File -> Settings -> Editor -> General -> Auto Import
勾选 Add unambiguous imports on the fly 可自动导入包
自动清除无用import
优化导入快捷键
Windows: ctrl + alt + o
mac: ctrl + alt + o
设置自动清除无用import
Preferences或Settings中
Editor, General, Auto Import, JAVA
勾选Optimize imports on the fly(for current project)
Alt+Enter根据提示手动import包
如果要import的包有歧义而无法自动import时,系统会给出提示,此时按快捷键alt+enter可手动选择导入的包。
避免import自动合并为java.util.*
File -> Settings -> Editor -> Code Style -> Java -> Imports标签页
Class count to use import with ‘‘,设为一个较大的值比如500
Names count to use static import with ‘‘,设为一个较大的值比如500
多行显示tabs
默认是单行显示tab,放不下时隐藏
Editor -> General -> Editor Tabs
取消勾选 Show tabs in single row
超宽度自动换行
Editor -> Code Style -> Hard wrap at 120 columns
勾选 Wrap on typing 编辑过程中超宽度会自动换行
要关闭“超宽度会自动换行”,取消勾选 Wrap on typing
目录随源文件自动展开
Eclipse有个打开文件就自动展开目录的功能,在IntelliJ里从Project左边栏的齿轮上选择Autoscroll to Source和Autoscroll from Source都勾选上即可。
工具栏定制
显示工具栏:View -> 勾选Toolbar
调整工具栏按钮顺序:
工具栏上点右键 -> Customize Menus and Toolbars… ->选择Main Toolbar,选中想调整的按钮,点右侧的Move Up或Move Down键
鼠标悬浮显示提示信息
File -> Settings -> Editor -> General
Other中勾选 Show quick documentation on mouse move 即可
Typo: In word ‘xxx’
对于某些不符合拼写规范的特殊单词,IDEA 会提示拼写错误 Typo: In word ‘xxx’
解决:
More Action(或 Alt+回车) 选择 Save xxx to dictionary 保存到本地词典即可。
@Autowired 注解的成员有红色下划线
CMD + , 打开Setting,搜索 Autowiring for bean class,级别改为error以外的其他(比如 warning)
新版 IDEA 是:
Spring | Spring Core | Code | Incorrect injection point autowiring in Spring bean components
cannot access xx.class
Cannot Resolve Symbol xx
问题:
引用的 class 是存在的,就是当前项目中的类,但 IDEA 提示 Cannot Resolve Symbol ‘xxx’ 或 cannot access xx.class
原因:
可能是 IDEA 缓存出错
解决:
尝试 File -> Invalidate Caches / Restart… 清除缓存并重启 IDEA, 一般就可以解决了,如果还不行,删除 .idea 隐藏文件夹,重新导入项目
主题和字体
导入代码格式配置文件
CMD+, 打开Preferences设置
Editor - Code Style - Java - 点 Scheme 右侧的设置按钮 - Import Scheme - 选择IntelliJ IDEA Code Style XML
选择对应的 xml 配置文件,比如 intellij-java-google-style.xml
导入后,xml文件会被拷贝到 ~.IntelliJIdea2018.1\config\codestyles 目录中,所以也可以直接将xml拷贝到此目录后在Idea中选择。
Google Style Guide
google/styleguide
https://github.com/google/styleguide
Google Java Style Guide
https://google.github.io/styleguide/javaguide.html
Google Java Style 编程风格指南 中文版
https://blog.csdn.net/zen99t/article/details/50763231
styleguide/intellij-java-google-style.xml
https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml
阿里巴巴code style
alibaba/p3c 的 wiki 中有使用说明
https://github.com/alibaba/p3c/wiki
编辑器字体
打开File -> Settings -> Editor -> Font 配置界面
选择字体YaHei Consolas Hybrid,字号15,确认即可。
编辑器背景色
打开File -> Settings -> Editor -> Color Scheme -> General 配置界面
选择Text -> Default text,在右边的Background中选择颜色,豆沙绿色值为#C7EDCC
光标所在单词高亮颜色
Preferences -> Editor -> Color Scheme -> General -> 右侧Code ->
Identifier under caret 光标所在单词被引用位置的高亮颜色 -> Background 改为 838687
Identifier under caret (write) 光标所在单词的创建或赋值位置的背景色 -> Background 改为 91922A
构建/运行/JDK配置
目前大多数 IDE 都没有集成 JDK 环境,IDEA 也是一样,在使用 IDEA 之前首先要安装 JDK,并且配置环境变量。与其他 IDE 不同之处在于,IDEA不会自动匹配系统的JDK环境。
系统JDK配置
1、单击 File -> Project Structure 菜单项,打开 Project Structure 配置界面;
2、在左侧列表框中,选择 SDKs 列表项,进入 SDK 配置页面,这里列出的是系统中已配置的所有SDK,跟每个项目无关。
3、若中间的SDK列表框没有选项,则单击“+”号,选择JDK,浏览选择jdk安装目录,创建一个JDK列表项,还可以给此SDK自定义名称。
项目默认JDK配置
1、单击File -> Other Settings -> Default Project Structure…菜单项,打开Default Project Structure配置界面;
2、选择Project配置项,在右边的Project SDK中选择系统中配置好的jdk1.7,Project language level选择和jdk相对应的”7 - Diamonds, ARM, multi-catch etc.”,表示sdk的兼容级别是java7。注意jdk版本和level级别一定要对应。
指定每个项目的JDK
IDEA 可以为每个项目指定不同版本的JDK,并且需要开发者手动配置项目的所使用的JDK版本。配置方法如下:
(1)单击File -> Project Structure菜单项,打开Project Structure配置界面;
(2)选择Project配置项,在右边的Project SDK中选择系统中配置好的jdk1.7,Project language level选择和jdk相对应的”7 - Diamonds, ARM, multi-catch etc.”,表示sdk的兼容级别是java7。注意jdk版本和level级别一定要对应。
没有Run/Debug选项
新导入的 java 工程,已经配置了 Project Structure -> Project 中的项目 jdk,java 类中也有正确的 main 方法,但右键没有 Run/Debug 选项。
解决:
在项目上右键,选择 Open Module Settings,Mark as 中将源码目录src标注为Sources,这样就能找到源码目录了,也有有了Run选项。
或者直接在源码 src 根目录上右键 Mark Directory As -> Source
Method breakpoints may dramatically slow down debugging
debug 启动 spring boot 项目时,提示: Method breakpoints may dramatically slow down debugging,同时好长时间服务都起不来
原因:
Java 方法断点 引起的
Java Method Breakpoints 是 IDEA 2017 年引入的新特性,如下:
https://www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint
解决:
debug 启动后,Run | View Breakpoints (或者 CMD+Shift+F8 ) 打开断点页面,去掉勾选 Java Method Breakpoints 即可。
Intellij Debugger slow: Method breakpoints may dramatically slow down debugging
https://stackoverflow.com/questions/27966065/intellij-debugger-slow-method-breakpoints-may-dramatically-slow-down-debugging
output path没配置
新导入的普通java项目,启动时报
Error
Cannot start compilation: the output path is not specified for module xxx. Specified the output path int the Project Structure dialog.
因为没配置编译输出目录
File -> Project Structure -> Project compiler output 选择一个目录, 比如 当前项目下新建一个 target 目录。
记得要将 target 目录加入 .gitignore 文件
5种源码目录类型标注
如上图,我们可以根据对项目的任意目录进行这五种目录类型标注:
- Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
- Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 -Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
- Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
- Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
- Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。
指定编译输出目录
在java文件上右键,Run,提示:
Cannot start compilation: the output path is not specified for module “java-exercises”.
Specify the output path in the Project Structure dialog.
打开Project Structure -> Project,设置Project compiler output,点右边的目录浏览,在工程目录下新建一个名为build的文件夹(可自定义),然后选中,D:\git\java-exercises\build
新版IDEA默认打开SpringBoot项目的JMX
报错:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.actuate.endpoint.jmx.JmxEndpointExporter]: Factory method ‘jmxMBeanExporter’ threw exception; nested exception is java.lang.IllegalStateException: Unable to map duplicate endpoint operations: [MBean call ‘topology’] to topologyEndpoint
原因:
新版 IDEA 默认会给 SpringBoot 应用打开 JMX Agent
解决:
在启动配置里去掉 Enable JMX agent 即可
java.lang.NoClassDefFoundError: com/intellij/rt/debugger/agent/CaptureStorage
tomcat 项目启动报错:
java.lang.NoClassDefFoundError: com/intellij/rt/debugger/agent/CaptureStorage
解决:
打开 View Breakpoints 界面,去掉所有断点前的勾选
Maven 配置
总是更新maven snapshot依赖
CMD + , 打开设置界面,Build,Execution,Deployment -> Build Tools -> Maven
或者点侧边栏 maven,点小扳手图标 -> Maven
勾选 Always update snapshots
设置maven 并行编译
CMD + , 打开设置界面,Build,Execution,Deployment -> Build Tools -> Maven
或者点侧边栏 maven,点小扳手图标 -> Maven
Thread count -T option 配置项,输入 1C 表示cpu核数个线程并发编译
设置 maven 并发线程数
mvn -T 4 4线程并发
mvn -T 1C 等于cpu核数
mvn -T 1.5C 1.5倍cpu核数
版本控制
把项目纳入git版本控制
VCS -> Import into Version Control -> Create Git Repository…
选择项目根目录后会自动将当前项目纳入git版本控制,其实就相当于在项目根目录下执行git init
IDEA隐藏.idea文件夹和*.iml文件
打开 File -> Settings -> Editor -> File Types , 或者 File -> Settings 搜索 File Types
右侧 最下面 Ignore files and folders 填入 .idea
和 *.iml
,保存后回到主界面就自动隐藏 .idea 文件夹和 .iml 文件了。
IDEA隐藏target/outpu文件夹
方法1
点左侧 Project 右边的下三角,选择视图,默认是 Project 视图,会显示 target 等编译输出目录。切换成 Packages 或者 Project Files 视图会干净一些。
方法2
在 Project 视图不变,在下三角处点右键,取消勾选 Show Excluded Files, 就看不到 target 目录了。
取消勾选后如果还能看到的话,说明 target 目录没有被 exclude, CMD+; 或 File -> Project Structure 打开项目设置,将 target 目录标为 Excluded
.iml不需要提交到版本控制
.iml 和 eclipse中的.classpath,.project都属于开发工具配置文件,
也就是在项目导入ide的过程中生成的配置文件,每个人开发环境是不一样的,所以这个文件没必要提交。
而且如果提交之后,出现冲突,还需要解决比较麻烦
Intellij Idea创建一个简单的java项目
https://blog.csdn.net/datouniao1/article/details/53142192
core.autocrlf换行符自动转换
在IDEA Git中提交代码时,如果系统判断到要将Windows平台的CRLF换行符提交到Git库,会给出如下提示:
此时选择Fix and Commit,git配置项core.autocrlf将被设为true,交由git来自动转换换行符,提交时转换为LF,检出时转换为CRLF。
建议:如果组内全都是再Windows平台工作的话,还是建议保持此项为false,即选择Commit As Is,不自动做转换。
文件名颜色状态
绿色,已经加入版本控制暂未提交;
红色,未加入版本控制;
蓝色,加入版本控制,已提交,有改动;
白色,加入版本控制,已提交,无改动;
灰色:版本控制已忽略文件。
也可自定义配置,打开File -> Settings -> Version Control -> File Status Colors
git commit时code analysis提示
每次git commit时都弹出Code Analysis提示,如下:
可在Commit Changes界面去掉Perform code analysis选项
提交对话框:清理历史提交信息
File > Settings > Version Control > Commit Dialog > Clear initial commit message
Project项目
普通Java项目改为Maven项目并使用JUnit5
项目上点右键 -> Add Framework Support -> 勾选 Maven,则会自动添加一个 pom.xml 配置,之后就可以使用 mavne 引入需要的依赖了。
maven 默认使用 src/main/java 和 src/test/java 作为源码目录(Source Folders),如果不想使用默认的源码目录,可以自己在 Project 中配置
进入 File -> Project Structure -> Modules
默认是如下图这样的
比如我的 algorithms 项目,只是独立的算法题代码,转为 maven 项目只是为了方便引入 junit 测试框架,就直接把根目录 .
设为 Test Source Folders ,方便直接使用 junit,改为下图这样
导入项目
File -> Open… -> 打开Open File or Project对话框,浏览选择项目所在目录,点击OK导入。
如果本地project已关联了SVN或Git,导入IDEA后可自动识别版本控制。
导入项目后不显示目录结构
原因:导入的项目很大,有十几个maven模块,还没等解析完IDEA闪退了,下次再打开这个项目时就无法显示各个模块。
重新Open项目也不起作用,因为项目中已经有了.idea文件夹,不会再次解析和初始化。
解决方法:
1、关闭IDEA
2、然后删除项目文件夹下的.idea文件夹
3、重新用IDEA工具打开项目
Idea重新打开项目
删除项目文件夹下的.idea文件夹
重新用IDEA工具打开项目
IDEA 打开多个项目
1、将两个项目或多个项目放在同一个文件夹下,之后用idea打开该文件夹。
2、打开后,发现IDEA并没有自动识别Maven项目,这时候,需要手动在IDEA右侧的Maven Projects栏中添加项目的pom.xml文件,这样IDEA就能识别了。
将右侧”Maven Projects”打开点击”+”,再将各个项目的pom.xml文件选中,点击”OK”,然后IDEA会读取pom识别maven项目。
3、配置多个项目的Run Configuration
Run -> Edit Configurations,新建一个Spring Boot项目,编辑Environment,
填入项目相关的VM options
Use classpath of module选择项目的maven模块(配置之前一定要让IDEA读取到maven项目,即第2步,否则没有可选的module)
然后即可运行
IntelliJ IDEA像Eclipse一样打开多个项目
https://blog.csdn.net/zht666/article/details/47831893
IDEA 运行慢解决
修改IDEA启动配置文件,增加内存
C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\bin
idea.exe.vmoptions 和 idea64.exe.vmoptions
-server 使用server jvm。酌情使用,有些doc说IDEA加该选项可以提高速度。
-Xverify:none 关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类,缩短了启动时间。
-Xms:是另一个设置内存的参数,用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。
-Xmx:是java的一个选项,用来设置你的应用程序能够使用的最大内存数,如果你的程序要花很大内存的话,那就需要修改缺省的设置,比如配置tomcat的时候,如果流量啊程序啊都很大的话就需要加大这个值了,不过有一点是要记住的,不要大得超过你的机器的内存,那样你的机器会受不了的,到时候就死翘翘了。
-XX:PermSize 永久区的大小。
-XX:+UseParNewGC 使用并行收集算法。
我的配置:
-server
-Xms1024m
-Xmx2048m
-Xverify:none
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\bin\JetbrainsCrack-2.7-release-str.jar
IDEA 社区版无法启动
如果遇到这样的问题,首先用命令行启动idea,然后看看具体的错误。
打开finder->应用程序->idea.app->右键->显示包内容->然后MaxOS->双击shell脚本(idea),这样就能在控制台看到一部分信息
/Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS/idea ; exit;
si.ma@matt ~ /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS/idea ; exit;
2019-10-16 11:45:23.263 idea[1167:13874] allVms required 1.8*,1.8+
2019-10-16 11:45:23.266 idea[1167:13877] Value of IDEA_VM_OPTIONS is (null)
2019-10-16 11:45:23.266 idea[1167:13877] Processing VMOptions file at /Users/user/Library/Preferences/IdeaIC2019.2/idea.vmoptions
2019-10-16 11:45:23.266 idea[1167:13877] Done
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Error opening zip file or JAR manifest missing : JetbrainsCrack-2.8-release-enc.jar
Error occurred during initialization of VM
agent library failed to init: instrument
[进程已完成]
原因是安装 IDEA 社区版(IDEA CE) 的时候,默认复用了原来的 IDEA Ultimate 2018.1 收费版的配置文件,由于之前的版本是用crack jar包 java 代理的方式破解的,现在jar找不到了,所以启动失败。
将 /Users/user/Library/Preferences/IdeaIC2019.2/idea.vmoptions 中的-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\bin\JetbrainsCrack-2.7-release-str.jar
去掉即可。
IDEA 破解
IDEA 2020版jar破解
JetBrains 开发IDE 2020.2 以下版本最新全家桶系列产品激活破解方法
https://www.macfz.com/a/Jetbrainscrack.html
更新日期:11月24号
http://idea.medeming.com/jets/
2020.10月27日更新
https://www.jb51.net/article/197138.htm
这些 jar 包破解方法都来自 https://zhile.io/ 大神,现在不好用了,更推荐激活码方式。
目前的激活补丁版本为v3.2.2, Build Date: 2020-08-13,支持JetBrains的付费插件,支持2020.2 以下所有的版本。
激活步骤
1、以下以 「IDEAIntelliJ IDEA」为例,JetBrains 系列安装激活方法都是一样的。
2、运行你的 IDE,进行基本的配置后会弹出激活窗口,选择Evaluate for free,然后点击Evaluate按钮。(如果试用过期请点击「OK」或者「Enter Key」)
3、点击后会关闭试用窗口并出现「项目创建管理窗口」(也就是「Welcome to IDEAIntelliJ IDEA」窗口),先不要动。(如果你之前创建过项目可能会直接进入项目,把项目关掉就会出现啦)
4、将下载的 jetbrains-agent.zip 拖拽到你喜欢的位置(此文件你拖到你喜欢的位置后未来不能删除!)
5、将 jetbrains-agent.zip 拖拽到「项目创建管理窗口」中,然后点击 Restart 按钮重新启动。
6、重新启动后出现「JetbrainsAgent 配置助手」窗口,在安装参数处复制粘贴下面的安装参数,然后点击为 IDEAIntelliJ IDEA 安装,最后点击 是,会重新启动。
7、重新启动后点击菜单栏的「IDEAIntelliJ IDEA」,再点击「Preferences…」打开软件的偏好设置,左上角的搜索框处输入「update」,取消勾选右侧的「Automatically check updates」,然后点击「OK」(为了不必要的麻烦,请务必操作!)
安装参数
Qr7EpuKzNtnTuEmGcLg/YnYyVEcnvR4iflCYTHc6dwuB8Jbx7e6E43CPRA+KjL2O/D/C+hj/rDFrwCNgGAvLcJd3bcaJ8UTMh8FPxd2EfjDt0eopoRIRQKtw8Ua3hlm2i+GvhYnaJ5/F1XN7H/8uEtYqFQlJc9auMxAL3gdnsmY
同一个安装参数过一段时间可能就过期了。
此方法来自于:zhile.io
IDE Eval Reset方式(2021.3起失效)
https://shimo.im/docs/WY3hd8Jt8KHgvVty/read
1、点击设置(Settings/Preferences)
点击 Plugins -> 小齿轮 -> Manage Plugin repositories -> 添加第三方插件仓库地址:https://plugins.zhile.io
2、搜索重置插件:IDE Eval Reset ,有时可能要等一两分钟,找到后点击 Install 安装。
插件安装完毕后我们需要重启软件使其生效
3、下载完毕后,第一次需要我们手动重置 并设置 自动重置 ,后面我们就不再需要管了
Help -> Eval Reset
勾选 Auto reset before per restart 自动重置,点 Reset,以后就不需要手动重置
重置会重启软件
本激活教程原理就是无限延期你的试用期,所以你第二天打开软件查看 试用期是否仍然为30天即可证明是否激活!
2021.2.2及以下版本很好用;2021.3以下(不含)堪堪能用,需要配合一些手法;2021.3版本开始正式失效
IDEA/DataGrip 2021.3激活(ja-netfilter方式)
1、从 release 下载 zip 包解压
ja-netfilter / ja-netfilter
https://github.com/ja-netfilter/ja-netfilter
我们需要编辑解压后 config 文件夹中的 url.conf 和 dns.conf,填入需要屏蔽的 jetbrain 的 url,不会填没关系,第二步下载的包中有填好的
2、从 https://jetbra.in/s 下载 zip 包,解压后将 config 和 plugin 目录中的拷贝到从 GitHub release 下载解压后的同名目录中覆盖
这一步是为了将 jetbrain 的 dns 和 url 配置覆盖到 GitHub 下载的包中。
此外,还可以编辑 mymap.conf 里面可以任意修改授权对象和有效期时间。
3、Mac 上,在“应用程序”中 IDEA 上右键点击显示包内容,进入 Contents/bin 目录下,打开 idea.vmoptions 文件
或者 Help -> Edit Custom VM Option…
最后添加 -javaagent:/absolute/path/to/ja-netfilter.jar
4、打开 IDEA,填入 https://jetbra.in/s 中拷贝的激活码,点激活。进入 IDEA 后 Help -> register 可以看到授权对象和有效期是我们在 mymap.conf 中配置的,这就对了。
介绍一个”牛逼闪闪”开源库:ja-netfilter
https://zhile.io/2021/11/29/ja-netfilter-javaagent-lib.html
ja-netfilter还能不能激活idea2021.3以上的版本和idea插件?
https://www.jiweichengzhu.com/article/c9a9145dc905413ca6d4b4d02cdc6f07
IDEA/DataGrip 2023.2激活(jihuo.live)
上一篇 Mac使用笔记
下一篇 Atom 使用笔记
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: