通过eclipse运行ant它没有找到环境变量,但是通过终端运行ant很好

时间:2011-02-11 15:26:23

标签: eclipse ant environment-variables environment

当我通过Eclipse运行ant时,一些目标构建正常,但需要特定环境变量的那些,即我在.profile文件中设置的SOME_SDK将无效。即使我试图回显$ {env.JAVA_HOME},通过eclipse的Ant也会打印出该字符串。但是如果我通过终端运行ant(即ant sometarget),它会找到JAVA_HOME和SOME_SDK并回显这些路径。我已经检查过eclipse它指向我环境路径中的同一个蚂蚁(/usr/share/java/ant-1.8.1)。有什么想法吗?

由于

5 个答案:

答案 0 :(得分:19)

当您打开终端时,.profile中的环境变量会被加载。当您通过窗口系统启动Eclipse时,它不会在您的用户帐户下运行,因此您的.profile在运行时不可用于Eclipse。

至少在我的linux机器上就是这种情况,我在Mac上猜测它是一样的。我把Eclipse需要在/ etc / profile文件中看到的环境变量放在系统启动时加载。

答案 1 :(得分:11)

您可以在Ant运行配置中指定变量(运行方式&gt; Ant构建... &gt; 环境选项卡)。< / p>

答案 2 :(得分:1)

我认为Eclipse IDE环境处理有点被破坏,至少在* nix环境中。虽然类似于Kevin的情况,但我发现虽然我确实创建了一个单独的运行配置文件并且 - 成功 - 运行测试/安装目标(maven而不是ant,但这可忽略不计的噪音),并指定JAVA_HOME环境变量对于该运行配置文件,该项目不验证POM文件。

我剩下的只有两个不同的选择:

  1. 使用/ etc / profile方法或
  2. 编辑eclipse.ini文件,包括那里的系统属性。
  3. 我认为后者是一种更简洁的解决方法,因为它影响的配置文件毕竟只适用于有问题的应用程序。尽管如此,Eclipse应该使用用户路径中找到的变量,让我们放心地生成:)

答案 3 :(得分:0)

您需要做的是从c:\ Windows \ System32中删除java.exe。

原因是,在%PATH%环境变量中,它包含c:\ Windows \ System32,它有一个java.exe文件。如果你运行c:&gt;从命令提示符下的java -version,您将看到您运行的版本与jdk版本不匹配。

完成此操作后,您需要将%JAVA_HOME%/ bin添加到%PATH%环境变量中,这样您就可以在运行应用程序时从jdk执行java.exe。确保在期望它获取更改之前重新启动任何应用程序(包括命令提示符)。

答案 4 :(得分:0)

将此行添加到~/.bashrc(或者您可以使用其他配置文件):

alias start-eclipse='open /Applications/eclipse/Eclipse.app'

(不要忘记运行source ~/.bashrc

如果从命令行运行start-eclipse,则将提取所有环境变量。这样,您只需在命令行和Eclipse环境中维护一组环境变量即可。

注意:克里斯·弗格利(Chris Fegley)在Launch mac eclipse with environment variables set的答案中被偷走了