jabref
我在 Java 程序(例如和 )中遇到了可怕的、渲染不正确的字体rubymine
。这可以通过运行来修复
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref
我知道我可以将这些 Java 选项导出为环境变量,并从命令行启动程序。但是,有没有一种方法可以全局设置这些选项,以便所有 Java 程序都能识别它们,无论它们是如何启动的?
我还知道我可以修改*.desktop
Java 程序的所有文件,但我正在寻找一个全局解决方案。
我在用java-7-openjdk
我在 Arch Linux 上。 (FWIW 这曾经对现在坏掉的来说没问题jre7-openjdk-headless-infinality安装。)
答案1
您知道如何在 shell 中设置变量,但仅供记录你可以写:
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
此后从此 shell 会话启动的所有程序都将设置该变量。
如果您希望将其设置为每一个之后启动 shell,~/.profile
也添加该行。在这种情况下,它将应用于您将来启动的所有 shell,但不适用于当前正在运行的任何 shell。
.profile
通常也适用于 GUI,但这可能会被系统配置和启动方式破坏。这只是每用户配置。
如果您希望始终为每个用户设置它,您可以将分配添加到/etc/environment
.那里的格式有点不同:只是KEY=VAL
在单独的行上,不需要引用,也没有任何其他内容。
_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on
这是通过解析pam_env
模块。还有一个每用户~/.pam_environment
文件,它仅对一个用户具有相同的效果。这些都需要注销并重新登录才能使更改生效。将为每个未来的登录会话设置变量,无论是在控制台还是在 X 中。
同样,您可以在其中创建一个文件/etc/profile.d
其中包含一条export
语句,任何用户都会将其加载到以后的每个会话中。那里可能会有一些预先存在的文件来对其进行建模,但只要export
上面的行就可以了。
或者,您可以将export
语句添加到~/.xinitrc
(如果使用startx
)、~/.xsession
或~/.xprofile
语句。KDE 还支持一个目录~/.kde/env
,可以包含任意数量的 shell 文件,其中包含export
上述语句。我可能更喜欢其他方法之一。