如何将 JAVA_HOME 暴露给在 X 和/或 Gnome 下运行的应用程序?

如何将 JAVA_HOME 暴露给在 X 和/或 Gnome 下运行的应用程序?

我试图从 Gnome3 的应用程序菜单运行 IntelliJ,但它抱怨JAVA_HOME变量未设置。

我的 Java 安装在我的主文件夹下。

我设法导出我的变量~/.bashrc

export JAVA_HOME=~/jdk1.6.0_32

我成功地从命令行运行了 IntelliJ。

我认为忽略配置是正常的,因为 Gnome 不应该假设我们正在使用 bash,不是吗?

我希望能.profile在正确的地方使用,但似乎没有任何效果。

答案1

根据Ubuntu 的环境变量 Wikiin~/.pam_environment或 in /etc/environment,具体取决于您希望为所有用户或仅为您的用户提供什么。

会话范围的环境变量

应该仅影响特定用户(而不是整个系统)的环境变量设置应设置为:

~/.pam_environment- 该文件专门用于设置用户环境。它不是一个脚本文件,而是由每行一个赋值表达式组成。

注意:使用时.pam_environment需要重新登录才能初始化变量。仅重新启动终端不足以使用变量。

系统范围的环境变量

影响整个系统(而不仅仅是特定用户)的环境变量设置不应放置在加载系统或桌面会话时执行的许多系统级脚本中的任何一个中,而应放置在

/etc/environment- 该文件专门用于系统范围的环境变量设置。它不是一个脚本文件,而是由每行一个赋值表达式组成。具体来说,该文件存储系统范围的区域设置和路径设置。

答案2

为了使环境变量在从 GNOME 菜单启动的 X11 应用程序中可见,您可能需要将此变量导出为/etc/X11/xinit/xinitrc.该文件是在 Xsession 启动时获取的。

答案3

实际上,我发现使用桌面文件为可执行文件设置 JAVA_HOME 更容易。以 IntelliJ 为例,我的 JAVA_HOME 位于 /opt/java,我的 idea 安装位于 /opt/idea,我将使用包含以下内容的桌面文件:

[Desktop Entry]    
Type=Application
Name=Idea
Comment=IntelliJ Idea
Icon=/opt/idea/bin/idea.png
Exec=env JAVA_HOME=/opt/java /opt/idea/bin/idea.sh
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=jetbrains-idea

然后您可以在任何桌面环境中使用该桌面文件。

编辑:忘记指出您将 *.desktop 文件保存在 ~/.local/share/applications 中,以便能够在 Gnome 桌面环境中找到并使用它。

相关内容