首先,我使用的是 Kubuntu 12.04。
我刚刚下载并解压了一些软件的独立安装(Intellij 的 Phpstorm IDE,但我认为这并不重要)。我已使用 sudo 将解压后的目录复制到我的/opt
目录中。
我可以从命令行启动主 shell 脚本,而无需使用,sudo
没有任何问题。
我想从我的Application Launcher
so 运行该应用程序,我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
设置为*.sh
从kde4-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
在我设计的脚本的上下文之外清楚地看到正确的变量定义。因此,如果有人能够阐明为什么会发生这种情况,我很乐意将其标记为该问题的适当答案。