IDEA乱码问题
转为IDEA后,被这个乱码问题困扰了两天,最终解决了,写个文总结下。
我们的项目全部使用UTF-8,先出现的问题是新建文件不是UTF-8,先修改如下配置后正常
File->settings->Editor->File Encoding
将Project Encoding、IDE Encoding都改为UTF-8后,新建文件就是UTF-8了,文件编码可以在状态栏看到。如果以前用其他编码编写的代码会出现乱码,写个程序转下就好。
但改完后,控制台显示依旧是乱码,尝试修改编译器配置,如下:
Settings->Build,Execution,Deployment->Compiler->Additional build process VM options:
增加了-Dfile.encoding=UTF-8,仍然无效。
然后尝试在Maven选项中增加-Dfile.encoding=UTF-8,仍然无效。
后查到关于Idea testng单元测试乱码的解决,还可以更改idea的启动VM参数:
IEDA安装目录\bin
下编辑idea.exe.vmoptions,增加一行-Dfile.encoding=UTF-8,依旧无效。
网上搜了很多资料,还是改上面那些东西,没啥新发现。
突然看到前文中的为-Dfile.encoding=UTF8,UTF-8编码实际写的UTF8,中间没有短横杠,赶紧修改,重启IDEA,控制台终于显示正常。
但执行下面两行后,输出都为UTF-8带短横杆的,对idea.exe.vmoptions里为何不识别带横杠的UTF-8很费解
System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
IDEA特殊字符不可见问题
某次将某些代码临时拷贝到mac自带便签工具,拷贝回来后,代码突然报错,由于中间还编辑了一些其他代码,仔细检查后并未发现语法错误,但IDEA一直提示unexpected token。
怀疑是不可见字符引起,于是把代码发送至同事windows系统下的eclipse下,不可见字符终于显现出来真身了,一个方框,里面一个问号。
解决方法:plugin中可以搜到一个插件Zero width characters locator
,不过安装后依旧不能让不可见字符显现。
临时解决办法:侧边栏滚动条 的语法检查错误提示浮动窗口里,可以查看到哪有不可见字符,按指示删除即可。
IDEA缓存问题
有时IDEA运行过久、项目开过多、手动添加修改一些配置,新导入的或者更换过依赖的项目会出现jdk不识别、maven的pom.xml检查多遍是正确的,但是仍然有些类无法被识别等错误。
这时候可能是IDEA缓存出现问题,可以强制删除缓存,点击如下选项:
File->Invalidate Caches/Restart...
#源码文件语法错误不提示,编译后才提示语法错误
需要打开自动编译选项,具体位置:
File->Other Settings->Default Settings->
Build,Execution,Deployment->Compiler->勾选 Make project automatically
还有两种情况也不会提示语法错误:
Power Save Mode打开时,即使设置了以上选项;
打开项目过多,机器编译速度较慢,导致还没有编译到相应文件时,便运行程序,也不会自动提示。
git或svn等源码控制软件,更新源码后,同文件内容不同步,仍然为旧内容
IDEA运行一段时间后,如果机器内存较小,运行缓慢,或者打开项目过多,会出现以上情况。
可以手动同步下磁盘文件,选项在
File->Synchronize
点击后,强制同步磁盘文件
IDEA运行按钮代码或调试按钮点击后无响应,变为灰色,不能恢复,重启后依旧,无法执行任何代码
第一次出现此问题,清缓存重启恢复了。
但第二次出现这个问题,尝试了包括重启,清缓存重启,还原代码,均不能解决问题。
又尝试了以下链接的各种方法
https://zhuanlan.zhihu.com/p/75231714
https://blog.csdn.net/u013862444/article/details/77833452
http://cn.voidcc.com/question/p-vusfldio-sw.html
依旧无效
查看idea日志,又无任何报错,最终,新建一个项目,又能正常使用了,尝试把项目代码重新导入,恢复。
此问题很大可能为IDEA自身bug,由于没有报错日志,很难排查到具体原因,发生条件也很随机。
IDEA滚动条跳动,无法往下拉
最初搜到这种方式https://www.iteye.com/blog/hualong-2114381,提到屏幕取词软件兼容性问题,但本机有安装有道词典,但没有打开,也未后台运行,直接删除后,还是没有恢复,重启ide后恢复。
IDEA配置spring mvc web项目问题
maven多模块,spring mvc maven项目不能正确识别为web项目,导致使用本地tomcat启动后web项目也不能正常使用。
可能的原因:
webroot默认目录和实际webroot地址不一致,导致idea不识别
解决方案
在File-ProjectStructure-Facets里添加Web,手动选择web.xml和webroot的位置,但某些情况下idea内置tomcat识别还是有问题,所以建议引入jetty或tomcat jar包,手动指定相关配置,直接启动,这样可以不依赖idea
<!-- jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</dependency>
<!-- tomcat -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
</dependency>
查看字节码
View -> Show Bytecode
配置External tools
Settings -> Tools -> 打开的窗口点 +
Name 随意,如javap
Program 填 javap.exe 绝对路径
Arguments 填 -v $FileClass$
Working directory 填 $OutputPath$
使用时在文件点右键 External tools ,选javap(name)
某些文件夹看不到
项目重复导入可能会导致部分文件夹看不到,可以在ProjectStructure/modules/项目模块/sources中,具体参考 https://www.cnblogs.com/lwl80/p/13562891.html
其他常用信息
idea日志位置:菜单Help->show log in explorer(finder),打开的文件夹中idea.log即是