如何将用户环境感知应用程序启动器添加到统一面板?

如何将用户环境感知应用程序启动器添加到统一面板?

这是我的问题:当我从 Unity 的 Dash Home 搜索 NetBeans 并将其拖放到 Unity 启动器时,我发现 NetBeans 无法访问我的.bashrc文件中定义的环境变量,如下所示

... 
export SCALA_HOME=/usr/local/typesafe-stack
...

当我从 gnome-terminal 运行 NetBeans 时,我没有观察到有关环境变量的问题。

我还创建了一个桌面文件。以下是我定义netbeans.desktop文件的方式:

[Desktop Entry]
Type=Application
Name=NetBeans IDE 7.0.1
Icon=/usr/local/netbeans-7.0.1/nb/netbeans.png
Exec=netbeans
Terminal=false
Categories=Development;IDE;
StartupNotify=false

我如何修改此文件以便它能够知道用户的环境变量?

提前致谢,

此致。

丘恩坎

答案1

添加此内容:

SCALA_HOME=/usr/local/typesafe-stack

更改为:

/etc/environment

至于为什么 Unity 启动器不从中获取用户环境.bashrc(在我看来它应该如此),任何人都无法猜测。

答案2

尝试将终端设置为“true”:

[Desktop Entry]
Type=Application
Name=NetBeans IDE 7.0.1
Icon=/usr/local/netbeans-7.0.1/nb/netbeans.png
Exec=netbeans
Terminal=false
Categories=Development;IDE;
StartupNotify=false

我认为发生这种情况是因为可执行文件netbeans本身不是bash脚本:

file `which netbeans` #shows the type of the file
head -n1 `which netbeans` #shows the first line of the file/script

(我的赌注是“POSIX shell 脚本文本可执行文件”,#!/bin/sh 而不是 #!/bin/bash)

更新:另外,尝试编辑.profile文件而不是 .bashrc(以及注销/登录)

相关内容