看起来Ubuntu以非常相似的方式使用~/.bashrc
,~/.bash_profile
,~/.pam_profile
,/etc/environment
和/etc/profile
。我希望能够将配置添加到其中一个(这是合适的配置),以将ANT_HOME
设置为我的Ant安装的根目录的绝对路径(恰好是/opt/apache/ant/1.8.4/apache-ant-1.8.4/
)。这个变量需要像任何正常的env变量一样被“尊重”,我可以随时打开终端并echo
。如果我能够以这种方式设置它以便Java在运行时从System.getProperty("")
调用中读取它,那也是很好的。
提前感谢您的任何帮助或指示!
答案 0 :(得分:12)
对于全局设置,系统范围的环境变量
/etc/environment
/etc/profile
或/etc/bash.bashrc
来自this页面:
/etc/environment
[...]是 特别适用于全系统 环境变量设置。它是 不是脚本文件,而是包含 赋值表达式,每个一个 线。具体来说,这个文件存储 系统范围的语言环境和路径 设置。
使用/etc/profile
是一种非常方便的方法,但在Ubuntu下它的功能大大减少了。它的存在仅指向/etc/bash.bashrc
并从/etc/profile.d
收集条目。
在我的系统上,profile.d中唯一有趣的条目是/etc/profile.d/bash_completion.sh
。
适用于本地或每用户设置
以前版本的Ubuntu页面推荐~/.pam_environment
,但该页面目前建议如果不起作用,则应使用
~/.profile
- 这可能是 放置环境的最佳文件 变量赋值,因为它得到了 由...自动执行 启动期间的DisplayManager 处理桌面会话以及通过 从登录时登录shell 文本控制台。
~/.bash_profile
或~./bash_login
- 如果存在其中一个,当bash作为登录shell启动时,bash会执行它而不是“〜/ .profile”。 Bash会更喜欢~/.bash_profile
到~/.bash_login
。 [...]默认情况下,这些文件不会影响图形会话。“
~/.bashrc
- “......可能是最容易设置变量的地方”。
答案 1 :(得分:5)
首先,使用以下代码打开bash文件。
xxx @ xxx-desktop:〜$ sudo gedit /etc/bash.bashrc
然后,将Java Home作为JDK位置的路径和ANT home作为路径ANT位置插入,如下面bash文件末尾所述。我按照我的机器输入了路径。
export ANT_HOME=/usr/share/ant
export JAVA_HOME=/usr/lib/jvm/java-6-sun
set path=$path $ANT_HOME/bin
最后,保存并关闭文件。如果配置正确,终端必须在命令中显示以下注释 “反转”。
xxx@xxx-desktop:~$ ant -version
Apache Ant版本1.7.1于2008年11月10日编译 这意味着配置正常。
答案 2 :(得分:2)
首先,在* nix上设置env变量时省略尾部斜杠的标准做法。 (你的末尾有一个斜杠)。所以你应该写:
导出ANT_HOME = / opt / apache / ant / 1.8.4 / apache-ant-1.8.4
......而不是:
导出ANT_HOME = / opt / apache / ant / 1.8.4 / apache-ant-1.8.4 /
〜/ .bashrc,〜/ .bash_profile是好的,如果你只关心你的用户帐户和你使用bash shell。对于设置环境变量,使用它们中的哪一个并没有多大区别。 .bashrc会在每次打开新shell时重置它,而.bash_profile会在每次登录时重置它。
/ etc中的文件会为系统上的所有用户设置它(但它可以在本地覆盖)。如果您要构建不同的用户并且希望它们都具有相同的环境变量,那么/ etc / profile将是一个放置它的好地方。
答案 3 :(得分:1)
要从java读取变量,请使用System.getenv().get("ANT_HOME")
。阅读更多相关信息here。
至于设置它的位置,我更喜欢使用〜/ .bashrc,除非您要从其他用户或sudo
运行您的程序。然后你应该使用/etc/environment
答案 4 :(得分:1)
我会先将所有环境变量放到不同的文件中,然后source
放置$HOME/.xsessionrc
。 .xsessionrc
只是一个shell脚本,在新的X会话之后由登录管理器执行,如gdm,kdm等。
答案 5 :(得分:1)
第1步:
将所有变量设置为/etc/environment
,如下所示
JAVA_HOME=/usr/lib/jvm/java-6-sun
ANT_HOME=/usr/....<path to ant home>
set path="/usr/bin:<path2>:$JAVA_HOME/bin:$ANT_HOME/bin"
第2步:
在每个用户的~/.bashrc
末尾添加此行
source /etc/environment
第3步:
执行以下命令进行更改。
source ~/.bashrc
希望它有所帮助.. !!