Eclipse无法识别环境变量

3

Eclipse完全忽略了我的所有环境变量,例如它的版本路径变量:

Eclipse:
ANDROID_NDK=
PATH=[/usr/bin:/bin:/usr/sbin:/sbin]

Shell:
ANDROID_NDK=/Users/myname/SDKs/AndroidSDK/NDK/android-ndk-r7c
PATH=/Users/myname/local/node/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/myname/SDKs/andoird-sdks/tools:/Users/myname/SDKs/andoird-sdks/platform-tools:/Users/myname/SDKs/AndroidSDK/tools:/Users/myname/SDKs/AndroidSDK/platform-tools:/Users/myname/SDKs/AndroidSDK/NDK/android-ndk-r7c


我已经尝试将我的环境变量从.bash_profile移到.profile文件中,但没有成功。

Eclipse从哪里获取它的环境变量?我该如何设置?


许多这些变量自一年前以来就已经设置好了,所以Eclipse应该至少包含它们。但是是的,我确实做了 :( - 1dayitwillmake
我认为这不是Eclipse的问题,而是JVM环境没有shell环境所具备的所有内容。虽然这只是一种理论。我与OP遇到了同样的问题。 - jbranchaud
我实际上有几个解决方法,最终我不得不采取的方式是基于 shell 在 Eclipse 中设置环境变量的简单但迂回的方法。我将其发布为自己问题的答案,但希望在此之前有人能够发布更好的答案。 - 1dayitwillmake
1
你是否已经“导出”了变量?尝试使用declare -p ANDROID_NDK命令,看bash是否会响应declare -x ANDROID_NDK=...(其中-x表示已导出)。 - musiphil
你是如何启动Eclipse的?当你在例如KDE中打开一个终端(控制台),然后运行“export | grep 'ANDROID_NDK'”,再运行“/path/to/eclipse”时,Eclipse是否能够找到你的变量?如果可以找到,那可能与你的窗口管理器(KDE,Gnome,...)或窗口管理器的控制台/终端配置有关,而不是与你的JVM或Eclipse设置有关。 - try-catch-finally
2个回答

2

要使环境变量在GUI应用程序中可见,您需要将其放入/etc/launchd.conf。 在终端中输入:

sudo nano /etc/launchd.conf

然后在launchd.conf中添加变量:

setenv VARIABLE_NAME variable_value

按下 Ctrl+O, Enter, Ctrl+X,然后重新启动。


0

注意:我刚发现项目属性窗格不会以这种方式正确加载。还有更多研究需要去了解如何启动...

这可能是 Juno(4.2)版本的 Eclipse(以及 3.x 前身)中的一个错误...... 这篇 stackoverflow 文章 暗示了两件事

  1. 让 Eclipse 知道您的 shell 环境变量的一种方法是从 bash shell / 命令行启动 Eclipse(它将从 shell 继承环境)。

  2. 另一种方法似乎意味着在 Kepler(4.3)之前的 Eclipse 中存在错误:如果您升级到 Kepler(4.3),问题将对 OP 不再存在。

这对于在 OS X 上使其工作也很有用,this article,最后,how to launch an app from command line

以下是使用QuickSilver作为启动器的OS X逐步说明。我在我的~/Applications/文件夹中创建了一个.sh文件,现在我从QuickSilver运行它(我认为使用Spotlight也可以实现相同的基本过程)。

  1. 我创建了eclipse.sh,并使用以下命令调用.app“文件”。对于我来说,这是ADT Bundle的一部分,但只需将下面的路径替换为.app文件的路径(即您从应用程序文件夹或Eclipse安装所在位置运行的图标)

BEGIN EDIT

My originally-posted line

/Users/mike/DevInstalls/adt-bundle-mac-x86_64-20140702/eclipse/Eclipse.app/Contents/MacOS/eclipse

works until I try to open the properties panels in Project Properties.  The panels won't open, so I tried the following change to fix it

/Users/mike/DevInstalls/adt-bundle-mac-x86_64-20140702/eclipse/Eclipse.app/Contents/MacOS/eclipse &

but this won't work when launched from Quicksilver.

Either way, launching gracefully via QuickSilver has nothing to do with the OP, so I'm going to stop pulling my hair out over it. :-/

编辑结束

Then, back at the command line run "sudo chmod 755 ./eclipse.sh" to set the permission properly so it can be executed.

2.a. 接下来,我需要配置 QuickSilver 来查找这个 shell 命令。为此,我按下 QuickSilver 快捷键,点击右上角的三角形打开其首选项,选择 Catalog...,然后在左侧点击 Custom,在右侧点击加号添加一个条目,然后选择 File & Folder Scanner,再选择 shell 脚本所在的文件夹,然后点击右下角的小 "i" 按钮,在展开到右侧的窗口中,在 "Include Contents" 下点击 "Folder Contents"。

2.b. 或者,在 Quicksilver 首选项中,您可以启用 "Catalog" 下的 "Bash Command History"。我选择不使用这种方法,以免我的 QuickSilver 历史记录被命令历史记录噪音淹没。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接