如何在Ubuntu Desktop 12.04上设置ANT_HOME?

时间:2012-09-01 04:05:48

标签: java bash ubuntu ant environment-variables

看起来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("")调用中读取它,那也是很好的。

  • 我使用哪个文件?
  • 我如何实际设置它以满足上述要求?

提前感谢您的任何帮助或指示!

6 个答案:

答案 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)

设置环境变量的最佳方法GLOBALY

第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



希望它有所帮助.. !!