我试图在我的ant文件中使用一些全局变量。
当我通过终端登录时。我可以访问像JAVA_HOME
这样的变量
但是当我试图通过ant命令访问变量时,我无法找到它们。
在.cshrc中声明的全局变量
setenv JAVA_HOME jdk_full_path
使用变量的ant代码。
<property environment="env"/> <property name="ear" value= "true"/> <property name="home" value="${env.HOME}"/> <property name="java_home" value="${env.JAVA_HOME}"/>
我可以访问home变量,但我找不到JAVA_HOME
变量,我正在通过eclipse执行这个ant
请建议我在哪里申报变量,以便我可以访问它们
答案 0 :(得分:2)
问题可能是Eclipse在其环境中没有JAVA_HOME
。
尝试注销并重新登录,然后运行Eclipse。
或者,打开一个终端,然后从那里运行Eclipse。
答案 1 :(得分:0)
.cshrc文件仅在启动新的C shell时运行,不适用于全局变量。由于您没有从C shell启动Eclipse,因此它不会看到您在那里设置的任何变量。
在使用bash启动eclipse的情况下,尝试使用〜/ .login文件或/ etc / profile文件。这两个文件只在用户登录时加载一次,因此它们应该影响所有内容。您可能需要重新启动甚至重新启动才能使这些文件的更改生效。
答案 2 :(得分:0)
环境变量是通过流程执行继承的,它们不是全局的。因此,当您编辑shell的RC文件以添加变量时,它仅对修改后执行的shell以及从这些shell执行的程序生效。如果您从KDE / Gnome启动Eclipse,并且在进行更改之前启动了KDE / Gnome,那么KDE / Gnome从未有过定义,因此Eclipse也没有。
我建议注销并重新登录。另外,根据您的默认shell设置,您可能会发现KDE / Gnome是通过bash或其他方式启动的,这意味着您需要修改.bashrc而不是.cshrc
答案 3 :(得分:0)
您应该在以下某个文件中定义此变量:
〜/ .profile或〜/ .bash_profile仅在登录shell时运行,即首次登录系统时。
每次打开一个新的非登录bash shell(如xterm)时都会运行〜/ .bashrc文件
因此,您应该在此文件中添加以下行:
导出JAVA_HOME = jdk_full_path
您必须重新登录才能获得更改