在Ubuntu中轻松更改$ JAVA_HOME [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Ubuntu中轻松更改$ JAVA_HOME [关闭]相关的知识,希望对你有一定的参考价值。
在Ubuntu中,我想在Java 5和6之间来回切换我的JAVA_HOME环境变量。
我打开一个终端并输入以下内容来设置JAVA_HOME环境变量:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
在同一个终端窗口中,我键入以下内容以检查环境变量是否已更新:
echo $JAVA_HOME
我看到/usr/lib/jvm/java-1.5.0-sun这是我期待看到的。另外,我修改〜/ .profile并将JAVA_HOME环境变量设置为/usr/lib/jvm/java-1.5.0-sun。
现在针对这个问题 - 当我打开一个新的终端窗口并通过键入echo $ JAVA_HOME来检查我的JAVA_HOME环境变量时,我看到我的JAVA_HOME环境变量已经恢复为Java 6.当我重启我的机器(或日志)时我猜想,JAVA_HOME环境变量设置为Java 5(可能是因为我在〜/ .profile中进行了修改)。
有没有办法解决这个问题,以便我可以更改我的JAVA_HOME环境,而无需注销并重新登录(并在所有新的终端窗口中更改环境变量)?
将环境变量放入全局/etc/environment
文件中:
...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...
在要更新变量的每个shell中执行“source / etc / environment”:
$ source /etc/environment
检查它是否有效:
$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun
太棒了,不需要注销。
如果只想在终端中设置JAVA_HOME环境变量,请将其设置在〜/ .bashrc文件中。
这可能会解决你的问题:https://help.ubuntu.com/community/EnvironmentVariables
会话范围的环境变量
为了以影响特定用户环境的方式设置环境变量,不应该在用户主目录中的特定shell脚本文件中放置命令来设置它们的值,但是使用:
〜/ .pam_environment - 此文件专门用于设置用户的环境。它不是一个脚本文件,而是由赋值表达式组成,每行一个。
不建议:
〜/ .profile - 这可能是放置环境变量赋值的最佳文件,因为它在启动过程桌面会话期间由DisplayManager自动执行,并且当从文本控制台登录时由登录shell执行。
尝试这些步骤。
- 我们要编辑“etc profile”。环境变量将输入文件的底部。由于Ubuntu不允许访问根文件夹,我们将不得不在终端中使用一些命令
第1步:启动终端。输入命令:gksudo gedit /etc/profile
第2步:配置文本文件将打开。在页面底部输入环境变量...........例如:export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java
export PATH=/home/alex/jdk1.6.0_22/bin:$PATH
step3:保存并关闭文件。检查环境变量是否使用echo命令设置........例如echo $PATH
您需要将变量定义放在~/.bashrc
文件中。
来自bash手册页:
当启动不是登录shell的交互式shell时,如果存在这些文件,bash将从/etc/bash.bashrc和〜/ .bashrc读取并执行命令。
传统上,如果您只想更改终端窗口中的变量,请将其设置在.bashrc
文件中,该文件是每次打开新终端时获取的。每次打开新终端时都不会获取.profile
文件。
查看.profile和.bashrc之间的区别:What's the difference between .bashrc, .bash_profile, and .environment?
.bashrc
应该解决你的问题。但是,由于您使用的是Ubuntu,因此它不是正确的解决方案。请参阅相关的Ubuntu帮助页面“Session-wide environment variables”。因此,难怪.profile
不适合你。我使用Ubuntu 12.04和xfce。我设置了我的.profile
,即使我退出并且它也没有生效。类似的经验here。所以你可能不得不使用.pam_environment
文件,完全忘记.profile
和.bashrc
。请注意,.pam_environment
不是脚本文件。
看看bash(1)
,你需要一个登录shell来拾取~/.profile
,即-l
选项。
我知道这是一个很冷的问题,但每次有新的或最近的主要Java版本时它都会出现。现在这很容易适用于6和7交换。
我在过去用update-java-alternatives
做过这个:http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.html
更改.profile后,您需要执行该文件,以使更改生效。
root@masternode# . ~/.profile
完成此操作后,echo命令将起作用。
以上是关于在Ubuntu中轻松更改$ JAVA_HOME [关闭]的主要内容,如果未能解决你的问题,请参考以下文章