【问题标题】:What is the good way of setting JAVA_HOME system wide in Linux? /etc/profile or /etc/profile.d/custom.sh?在 Linux 中设置 JAVA_HOME 系统范围的好方法是什么? /etc/profile 还是 /etc/profile.d/custom.sh?
【发布时间】:2012-04-12 05:35:05
【问题描述】:

关于在 Linux 中在哪里设置系统范围的 JAVA_HOME 似乎没有官方答案,至少我还没有找到(在 Oracle 网站和一些 google fu 上查看)。 许多论坛和 cmets 都指向在 /etc/profile 甚至 /etc/bashrc/(或 /etc/bashrc.bashrc)中设置它,但在我的系统上,这两个文件头都非常具体地用于创建

“/etc/profile.d/ [...] 中的 custom.sh shell 脚本,因为这将 防止在未来的更新中合并。”

而不是直接修改文件。

出于这个原因,我认为放置在 /etc/profile.d 中的 custom.sh shell 脚本是可行的方法,但我可能会遗漏一些东西,因此这个问题 =)

如果我错过了官方文档并发布链接,请原谅我!


【问题讨论】:

  • 取决于您的发行版。这就是您应该查看的文档。
  • 这取决于发行版(正如@Mat 已经指出的那样),但无论您做什么:不要将其编辑到 bashrc 中,因为这不会影响不同的外壳。 /etc/profile 在大多数情况下应该可以工作。 (不过这个问题更适合SuperUserUNIX and Linux
  • 我对在 SuperUser 上发帖犹豫不决,因为它与 JDK/JRE 相关,也许管理员会标记并移到那里?我不认为我可以自己移动它。至于发行版依赖于基于 rpm 的发行版,来自官方存储库的“yum install”似乎没有修改 /etc/profile 也没有在 /etc/profile.d 中添加文件,但它必须在某处设置 JAVA_HOME,对吗?安装文档非常少,在 CentOS 或 RHEL 的任何官方文档上都没有提到如何设置 JAVA_HOME。

标签: java-home


【解决方案1】:

我通常在 /etc/profile.d/ 中创建一个 java_dev.sh 文件,其中包含:

export JAVA_HOME=/opt/javahome
export M2_HOME=/opt/mavenhome
export PATH=${JAVA_HOME}/bin:${M2_HOME}/bin:${PATH}

或类似的。我在所有我经常使用的 Linuxen 上都使用它,Ubuntu、RH、Fedora...

【讨论】:

    【解决方案2】:

    您以“出于这个原因...”开头的段落几乎回答了您自己的问题。我唯一一次编辑/etc/profile 是在我更改其中的某些值(而不是添加某些内容)时。

    在添加需要更改用户配置文件的各种软件包时,大多数发行版都会在/etc/profile.d 目录中添加适当的脚本,并且基本安装的/etc/profile 脚本会调用该目录中的所有可执行脚本。 (同样,升级/删除发行版提供的包将修改或删除子目录中的脚本。)

    【讨论】:

      猜你喜欢
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 2012-12-26
      相关资源
      最近更新 更多