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

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

当我在 bash 中打印出路径时,它会打印以下内容:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

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

/usr/bin:/bin:/usr/sbin:/sbin

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

答案1

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

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

去:

Preferences -> Terminal -> Local Terminal

并设置

Arguments到:--login

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

答案2

如果您想在 OSX 上设置系统范围的变量,您需要将其放在您的 ~/.MacOSX/environment.plist 文件中。

苹果网站上的这个页面了解更多详情。

答案3

遇到了同样的问题。这是我的解决方案:

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

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

答案4

如果您使用的是 Eclipse(使用“Mars”测试),则可以更改“运行配置”:

  1. 点击“运行”→“运行配置……”
  2. 在左侧选择合适的运行配置
  3. 现在选择“环境”选项卡
  4. 点击“新建…”
  5. 在“名称”字段中输入“PATH”
  6. 现在转到您的终端,输入“echo $PATH”并复制结果
  7. 将结果粘贴到“值”字段中
  8. 点击“确定”
  9. 返回“环境”选项卡,确保选择“将环境附加到本机环境”

现在 Eclipse 使用与系统相同的 PATH 环境变量值。请记住:这仅适用于您选择的运行配置。

正如您在问题中已经提到的,请在 Java 中使用以下命令进行检查:

System.getenv();

相关内容