在 KDE 的应用程序启动器中注册独立应用程序

在 KDE 的应用程序启动器中注册独立应用程序

首先,我使用的是 Kubuntu 12.04。

我刚刚下载并解压了一些软件的独立安装(Intellij 的 Phpstorm IDE,但我认为这并不重要)。我已使用 sudo 将解压后的目录复制到我的/opt目录中。

我可以从命令行启动主 shell 脚本,而无需使用,sudo没有任何问题。


我想从我的Application Launcherso 运行该应用程序,我Edit Applications...从启动器图标运行该应用程序,并将主 shell 脚本的路径添加到新条目 ( /opt/PhpStorm-111.344/bin/phpstorm.sh) 中并保存。每当我单击新添加的条目时,没有任何反应,应用程序不会启动。我见过这个关于在 kde 中注册应用程序的问题,而且我认为它不适用于这种情况,因为这就是对话框Edit Applications...应该做的(我认为)。

那么我错过了什么?我是否需要在对话框条目中指定运行命令的另一种方式?这是.desktop文件问题吗?还有别的事吗?

/opt/PhpStorm-111.344/bin/phpstorm.sh我从以下位置运行了命令ALT+F2 跑步框,调用终端。我收到一条消息,抱怨$JAVA_HOME找不到该变量。

现在,我的文件中确实有一个$JAVA_HOME环境变量设置.bashrc,并且可以从命令中看到它echo $JAVA_HOME。同样,如果我只需打开终端并从那里运行 shell 脚本,我就可以毫无问题地运行应用程序,因此$JAVA_HOME可以在该上下文中看到该变量。我已经注销并重新登录并运行source ~/.bashrc,但似乎都没有帮助。

我现在认为这是变量的某种用户权限问题导致$JAVA_HOME其无法运行。

有什么建议么?

答案1

根据您的显示/xsession 管理器的设置方式,在调用~/.bashrc之前可能不会获取它startkde,因此如果您正在设置该位置$JAVA_HOME,则 KDE 桌面上的任何内容都看不到它。

有用的是,startkde设置为*.shkde4-config --path lib | tr : '\n' | sed -n -e 's,/lib[^/]*/,/env/,p'.这可能包含~/.kde4/env或类似的内容,因此如果您希望 KDE 会话范围内存在一个变量,只需删除一个export带有 的 shell 脚本即可。

答案2

我有一个简单的解决方法,涉及 2 行脚本。它只是将变量重新导出$JAVA_HOME到适当的路径,然后调用应用程序的主 shell 脚本。将 KDE 应用程序启动器重新指向此新脚本将按预期启动应用程序。

我仍然不确定为什么我需要这样做,因为我可以$JAVA_HOME在我设计的脚本的上下文之外清楚地看到正确的变量定义。因此,如果有人能够阐明为什么会发生这种情况,我很乐意将其标记为该问题的适当答案。

相关内容