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


10

我在Java程序中可怕的,不正确渲染字体,如jabrefrubymine。可以通过运行来解决

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

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

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

java-7-openjdk在Arch Linux上使用。(FWIW过去安装了现在已损坏的jre7-openjdk-headless-infinality时还可以。)


对我来说,只有在从终端启动应用程序,从xfce面板使用应用程序启动器,或者从桌面使用脚本的情况下,它才没有任何参数。为什么??

@MARCOFranciosi我不知道。这对我来说可以。尽管我不确定您是否有足够的代表,但您必须对答案发表评论,以便他们的回答者可以做出答复。
Sparhawk

Answers:


7

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

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

并且从此shell会话启动的所有程序都将设置该变量。

如果要为以后启动的每个 shell 设置它,也要添加该行~/.profile。在这种情况下,它将适用于您将来启动的所有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,或中添加语句~/.xprofileKDE还支持一个目录~/.kde/env,该目录可以包含所需的任意多个Shell文件,其中包含export上述语句。我可能更喜欢其他方法之一。


1
好答案。清晰透彻。FWIW我使用了该/etc/environment选项,这对我来说似乎是最合逻辑的。
Sparhawk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.