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

Spa*_*awk 12 java fonts environment-variables

我在 Java 程序(例如jabrefrubymine. 这可以通过运行来修复

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref
Run Code Online (Sandbox Code Playgroud)

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

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

java-7-openjdk在 Arch Linux 上使用。(FWIW以前安装了现在损坏的jre7-openjdk-headless-infinality 就可以了。)

Mic*_*mer 10

您知道如何在 shell 中设置变量,但是对于记录,您可以编写

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
Run Code Online (Sandbox Code Playgroud)

之后您从此 shell 会话启动的所有程序都将设置变量。

如果您希望为之后启动的每个shell设置它,也请添加该行~/.profile。在这种情况下,它将适用于您以后启动的所有 shell,但不适用于当前正在运行的任何 shell。

.profile通常也适用于 GUI,但这可能会被系统配置和启动方式破坏。这只是每个用户的配置。


如果您希望始终为每个用户设置它,您可以向/etc/environment. 那里的格式有点不同:只是KEY=VAL在单独的行上,不需要引用,也没有其他任何东西。

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on
Run Code Online (Sandbox Code Playgroud)

这是由pam_env模块解析的。还有一个每个用户的~/.pam_environment文件,它只对一个用户具有相同的效果。这些都需要注销并重新登录才能使更改生效。这些变量将为以后的每个登录会话设置,无论是在控制台还是在 X 中。

类似地,您可以/etc/profile.d使用其中的export语句创建一个文件,并且它会被任何用户加载到以后的每个会话中。那里可能会有一些预先存在的文件来模拟它,但只是export上面的行就可以了。


或者,您可以export~/.xinitrc(如果使用startx~/.xsession、 或 中添加语句~/.xprofileKDE 还支持一个目录~/.kde/env,该目录可以包含任意数量的 shell 文件,其中包含export上述语句。我可能更喜欢其他方法之一。