在哪里可以设置全局 Java 选项?

在哪里可以设置全局 Java 选项?

jabref我在 Java 程序(例如和 )中遇到了可怕的、渲染不正确的字体rubymine。这可以通过运行来修复

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

我知道我可以将这些 Java 选项导出为环境变量,并从命令行启动程序。但是,有没有一种方法可以全局设置这些选项,以便所有 Java 程序都能识别它们,无论它们是如何启动的?

我还知道我可以修改*.desktopJava 程序的所有文件,但我正在寻找一个全局解决方案。

我在用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上述语句。我可能更喜欢其他方法之一。

相关内容