惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
T
Troy Hunt's Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
T
Threatpost
G
Google Developers Blog
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
H
Heimdal Security Blog
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Schneier on Security
B
Blog
V2EX - 技术
V2EX - 技术
NISL@THU
NISL@THU
C
CERT Recently Published Vulnerability Notes
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Y
Y Combinator Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
Schneier on Security
Schneier on Security
F
Fortinet All Blogs
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
S
Security @ Cisco Blogs
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
Project Zero
Project Zero
I
Intezer
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
SecWiki News
SecWiki News
Martin Fowler
Martin Fowler

DaraW

GMTC 北京 2021 小程序开发实践专场所见所想 从一次 Bug 定位来看 Taro H5 的组件实现 浅谈 B 站新 BV 号的设计 复盘:Vue.js 是如何成功的 你可能不知道的 Git React 应用性能优化一例 Thrift RPC Mock 方案探索 前端视频质量监控 前端函数式编程 多说一句再见 《你不知道的JS上卷》阅读小记之setTimeout的this指向问题 ES6实现内部类的写法 node-thunkify源码阅读笔记 如何监听JS变量的变化 JS实现自定义事件 制作列带有斑马条纹背景的表格 git用户名莫名其妙变化及挽救措施 记一次前端性能优化实战 将setTimeout函数队列
IntelliJ IDEA在Linux下字体不正常解决方案
DaraW · 2016-11-25 · via DaraW

之前遇到了一件奇怪的事,WebStorm中字体正常,IDEA直接导入WebStorm的设置备份也还是不行,如图所示。

本来这事也就放着不管了,昨天和Shaoxing聊天提到了这事,他提醒我正常情况下IDEA系列应该都是自带JDK的,于是我查了一下IDEA有带和不带JDK两个版本,自带JDK的会针对HiDPI和字体做一些优化。

我打开了WS和IDEA进行对比,发现他们的About信息中的JVM版本果然不一样:

在IDEA的设置里手动切换了JVM版本后IDEA会自动重启,然而并没什么卵用,重启后JVM又回到了Oracle版本。
我突然想起曾经在环境变量中配置过IDEA_JDK,于是删除了这个变量,在终端中输出这个变量已经不存在,然而还是不行。

这时看到官网说可以在idea.sh中手动添加IDEA_JDK变量,于是我打开了idea.sh,其中60行往后为关键点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17




if [ -n "$IDEA_JDK" -a -x "$IDEA_JDK/bin/java" ]; then
JDK="$IDEA_JDK"
elif [ -s "$HOME/.IntelliJIdea2016.3/config/idea.jdk" ]; then
JDK=`"$CAT" $HOME/.IntelliJIdea2016.3/config/idea.jdk`
if [ ! -d "$JDK" ]; then
JDK="$IDE_HOME/$JDK"
fi
elif [ -x "$IDE_HOME/jre/jre/bin/java" ] && "$IDE_HOME/jre/jre/bin/java" -version > /dev/null 2>&1 ; then
JDK="$IDE_HOME/jre"
elif [ -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
JDK="$JDK_HOME"
elif [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
JDK="$JAVA_HOME"

后面的代码省去,虽然没学过shell,但很明显查找JDK的流程为先查看环境变量有没有IDEA_JDK变量,如果没有再去看配置信息里有没有设置idea.jdk,如果没有再去找IDE的目录里自带的JDK。
所以解决方法很简单了,把上面的流程注释掉,直接去IDE的目录下找自带的JDK:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18












if [ -x "$IDE_HOME/jre/jre/bin/java" ] && "$IDE_HOME/jre/jre/bin/java" -version > /dev/null 2>&1 ; then
JDK="$IDE_HOME/jre"
elif [ -n "$JDK_HOME" -a -x "$JDK_HOME/bin/java" ]; then
JDK="$JDK_HOME"
elif [ -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
JDK="$JAVA_HOME"

保存后打开IDEA,果然一切都正常了,About信息中也显示使用了自带的JDK。