当我在 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 中打开新终端时运行。
小智 8
有同样的问题。这是我的解决方案:
编辑/etc/paths文件以包含所需的附加路径。
对于 OSX 安装,请不要运行/Applications/eclipse/eclipse /Applications/eclipse/Eclipse.app
啊哈,我找到了这个网页,上面写着
注意: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 是否在路径上乱搞。
| 归档时间: |
|
| 查看次数: |
31085 次 |
| 最近记录: |