当我通过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)。有什么想法吗?
由于
答案 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文件。
我剩下的只有两个不同的选择:
我认为后者是一种更简洁的解决方法,因为它影响的配置文件毕竟只适用于有问题的应用程序。尽管如此,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的答案中被偷走了