Mac OS X 和/或 Eclipse 上的 PATH 环境变量

Jas*_*n S 20 path macos

当我在 bash 中打印出路径时,它会打印:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)

当我运行 System.out.println(System.getenv("PATH")); 在 Eclipse 下运行的 Java 中,它打印

/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)

我怎样才能弄清楚为什么会出现这种差异?我需要将 /usr/local/bin 添加到 PATH 并使其可用于 Eclipse 下的 Java 应用程序。(注意:我没有修改系统路径,所以这些是操作系统或我安装的一个或多个应用程序设置的默认值。)

小智 13

对于那些在多年后寻找答案的人(霓虹灯,氧气):

由于 MacOS 终端中缺少 $PATH 条目,我在 Eclipse 中的某些节点和 angular/angular2 工具失败。您的工具可能会使用嵌入式 eclipse 终端,该终端不会开始提供您的登录名/用户 shell。因此,您需要在 eclipse 首选项中设置 eclipse 终端以作为 --login shell 启动,以便包含您的用户 PATH 设置:

去:

Preferences -> Terminal -> Local Terminal
Run Code Online (Sandbox Code Playgroud)

并设置

Arguments 到: --login

在 Eclipse 中打开一个新终端,从现在开始应该使用您用户的 $PATH。此外,您在 ~/.bash_profile 中设置的所有内容都将在 Eclipse 中打开新终端时运行。


Ted*_*eid 10

如果你想在 OSX 上设置一个系统范围的变量,你需要把它放在你的 ~/.MacOSX/environment.plist 文件中。

有关更多详细信息,请参阅苹果网站上的此页面


小智 8

有同样的问题。这是我的解决方案:

  1. 编辑/etc/paths文件以包含所需的附加路径。

  2. 对于 OSX 安装,请不要运行/Applications/eclipse/eclipse /Applications/eclipse/Eclipse.app


Jas*_*n S 6

啊哈,我找到了这个网页,上面写着

注意:Mac OS X 的默认路径中不包含 /usr/local/bin。因此,假设您使用的是默认的 bash shell,请在使用任何这些工具之前输入(或包含在 /etc/profile 中)export PATH=/usr/local/bin:$PATH。

这是合适/不合适的做法吗?除非我真的知道我在做什么,否则我对编辑系统文件持怀疑态度。/usr/local/bin 只能由 root 写入,所以我不会打开安全漏洞,是吗?


奇怪的是,我添加了导出路径,它对从 Dock 运行的 eclipse 没有影响。我还发现这个关于路径的页面,我的 /etc/paths 文件有

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

然而,这些路径没有出现在 eclipse 中......有没有一种简单的方法来创建/找到一个打印出 $PATH 的二进制文件,我可以从 Dock 运行它,这样我就可以更轻松地调试它?我不知道 Eclipse 是否在路径上乱搞。

  • +1 你的最后一个问题。我想知道如何在 bash 或终端中诊断 OS X * not * 中的路径问题。 (3认同)