Eclipse没有使用在.bashrc中设置的路径。

9
每当我通过快捷方式运行eclipse时,由于没有使用我在 .bashrc 中配置的 PATH 变量,我无法正确构建部分项目。
当我通过终端运行 eclipse 时,所有项目都能正常构建,因为它正在正确的 shell 中运行。
问题是,我想在不需要永久打开终端的情况下使用 .bashrc 中的 PATH 变量。我之前尝试过这样做,但每天我都会意外关闭运行 eclipse 的终端并失去所有未保存的代码。
有人可以帮帮我吗?
5个回答

19

你的工具可能使用内嵌的Eclipse终端。该终端不会启动您的登录/用户shell。因此,您需要在Eclipse首选项中将Eclipse终端设置为以--login shell开机:

前往:

Preferences -> Terminal -> Local Terminal

并设置

"Arguments" to "--login"

重新启动Eclipse,此后用户的$PATH应该被使用。


4
传奇!在我看来,这是最好的、最简单的回答。 - Matt R
我在Eclipse Oxygen (4.7.3)中没有看到这个选项。 - Scott Wegner
1
不需要重新启动Eclipse,只需重新加载终端即可。 - MinasA1
在Mac上,无法使用在.zshrc中设置的环境变量。 - ccleve
要在 Mac 上运行它,请打开终端并键入 open -a Eclipse。这将使 Eclipse 继承终端的环境。 - ccleve
谁在Eclipse中使用终端?构建目标呢?它们将使用未更改的PATH,因为Eclipse不会在终端中运行它们。 - Peter

12
  1. 使用写权限编辑 /usr/share/applications/eclipse.desktop 文件, 即 sudo gedit /usr/share/applications/eclipse.desktop

  2. 将设置 Exec=/usr/bin/eclipse 修改为 Exec=bash -ic "/usr/bin/eclipse" 并保存

潜在的问题是非交互式 shell 中不会加载 .bashrc。当您正常点击 Eclipse 图标启动它时,.bashrc 会较早地退出。此解决方案适用于所有由 .desktop 文件定义的程序。 相比之下,bash -i 打开一个交互式 shell,-c "" 在该 shell 中运行一个命令。


+1 是的,这确实是最好的、最不侵入性的方法。而且它可以应用到许多其他应用程序中。我也是以完全相同的方式启动我的Qt Creator。 - rbaleksandar

4
我可以想到两种解决这个问题的方法:
  • 编写一个小脚本,在启动eclipse之前导出那些变量或者源化你的.bashrc文件。
  • 在/etc/environment中定义这些变量,这样它们就不再是用户范围的了。
我更喜欢第一种选项。

1
我将路径变量添加到了我的.gnomerc文件中(基本上与第二个选项相同)。 - JREN
1
与第二个选项类似,我在我的Mint Linux上能够通过将额外的PATH操作添加到~/.profile文件中实现此目的,该文件在登录时运行。 - jgreen
选项3)从bash内部启动Eclipse。至少对于Qt Creator而言,它可以在没有任何问题的情况下工作。 - rbaleksandar

3
  1. 创建简单的脚本
#!/bin/bash
source /home/user/.environment_variables
/home/user/eclipse_cpp/eclipse -Duser.name="My Name"

2. 接下来将所有系统变量放入文件/home/user/.environment_variables(任何你想要的文件)中

我的看起来像这样:

export COCOS_ROOT=/home/user/Projects/edukoala
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

3. 现在您可以删除.bashrc中的变量并添加以下行:

source /home/user/.environment_variables

一切都运行良好 :)


1

好的,这个问题已经有答案并且已被接受。但是这也适用于使用Eclipse运行您的代码。您可以编辑运行配置并在那里设置环境变量。然后,Eclipse将从此设置中获取变量以在构建时使用。


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