从 shell 脚本启动的应用程序无法从 Unity 栏运行

从 shell 脚本启动的应用程序无法从 Unity 栏运行

我可以通过单击文件管理器中的“sqldeveloper.sh”然后单击“运行”来运行 Oracle 的 SQL Developer 3.0。当我将其添加到 Unity 菜单时(右键单击菜单中的运行图标,单击“保留在启动器中”),新图标不起作用。

关闭 SQL Developer 后,我单击 Unity 栏中的新图标,它除了闪烁几次外什么也不做。

答案1

右键点击桌面,创建一个新的启动器。然后将这个启动器拖到 Unity 栏上。

我建议在将启动器拖到 Unity 栏之前将其移动到另一个文件夹,因为您只是创建了指向该启动器的链接。如果将启动器移动到 ~/.local/share/applications/,您也可以通过在 Unity 搜索中输入名称来找到它。

答案2

这部分有效。我确实获得了启动器条目。但是,当我实际运行启动器条目时,正在运行的 SQL Developer 实例会在启动器中添加一个附加图标(略有不同的图像,背景为绿色)。

sqldeveloper.desktop文件内容如下

[桌面条目]
类别=开发;IDE;Java;
评论=Oracle SQL 开发人员
编码=UTF-8
执行=sqldeveloper
隐藏=false
图标=/usr/share/sqldeveloper/icon.png
名称=Oracle SQL Developer
终端=false
类型=应用程序

如果我右键单击第二个图标,则没有“保留在启动器中”选项。

有什么建议可以让启动器将正在运行的程序与原始启动器图标关联起来?

答案3

我设法通过将以下行添加到sqldeveloper.desktop位于的文件来使 Oracle SQL Developer 从 dash 正常工作~/.local/share/applications/

StartupWMClass=oracle-ide-boot-Launcher

这是通过使用

xprop WM_CLASS

并单击打开的 SQL 开发人员窗口。

答案4

就我而言,还需要添加 JAVA_HOME 环境变量。因此,sqldeveloper.sh 现在如下所示:

#!/bin/bash

export JAVA_HOME=/opt/java/jdk1.6.0_34
cd "`dirname $0`"/sqldeveloper/bin && bash sqldeveloper $* > sqldeveloper.log &

相关内容