微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

图标 – 如何让sqldeveloper图标显示在我的统一栏中

我正在戴尔桌面上安装Ubuntu 13.10.我已经安装了sqldeveloper并在我的Desktop / dir中创建了一个sqldeveoper.desktop文件来启动该程序.见下面的代码.我的问题是:在我的桌面屏幕上,我看到.desktop文件一个sqldeveloper图标(带有绿色箭头的圆形db图标).我双击图标,程序启动.图标出现在我的Unity栏中,然后图像变为’?’问号符号.

任何想法为什么会这样? icon.png(图像)位于桌面文件指向的位置.也许文件没有从Unity栏中正确看到路径?

sqldeveloper.desktop代码

[Desktop Entry]
Type=Application
Version=1.0
Name=sql Developer
GenericName=Oracle Development Environment
Comment=Proprietary environment for managing Oracle databases
Exec=sqldeveloper %F
Icon=/opt/sqldeveloper/icon.png
Terminal=false
Categories=Development;IDE;
StartupNotify=true

感谢您的任何指导.
JohnC

解决方法

背景

sql Developer 4.1.5版中,初始屏幕有WM_CLASS(STRING)= oracle-ide-osgi-boot-OracleIdeLauncher.将此设置为.desktop文件中的关键StartupWMClass的值将在启动屏幕可见时首先正常工作.

问题出现在sql Developer的主窗口出现时,因为第二个窗口只有通用的WM_CLASS(STRING)= sun-awt-X11-XFramePeer.在.desktop文件中为StartupWMClass设置此通用值不适用于我不完全理解的原因.

此问题的有效解决方案是使用自定义bash脚本的.desktop文件.自定义脚本异步启动Oracle的启动脚本,然后等待主窗口出现,最后以编程方式将其WM_CLASS更改为启动屏幕使用的相同值. WM_CLASS也由.desktop文件引用.

自定义bash脚本

将其存储为$HOME / bin / launch-sqldeveloper.sh

#!/bin/bash
JAVA_HOME=/usr/lib/jvm/java-8-oracle
sqlD_HOME=/opt/sqldeveloper

# Launch Oracle's startup script asynchronously
env JAVA_HOME=$JAVA_HOME $sqlD_HOME/sqldeveloper.sh $* &

i="0"
while [ $i -lt 20 ]
do

# Try to get sql Developer window ID
WIN_ID=$(xwininfo -root -tree \
| grep -i 'oracle sql developer' \
| grep -oP '(0x[a-f0-9]+)')

# If it is non-empty (window already exists)
if [ -n "$WIN_ID" ]
then
    echo "WIN_ID=$WIN_ID"

# Set WM_CLASS property of main window to same value
# that is used for the launcher window
    xprop -id $WIN_ID \
          -f WM_CLASS 8s \
          -set WM_CLASS "oracle-ide-osgi-boot-OracleIdeLauncher"

# and exit loop
    break
else

# Otherwise sleep for one second and increment loop counter
    echo "Sleeping: $i"
    sleep 1s
    i=$[$i+1]

fi
done
echo "Done"

.desktop文件

[Desktop Entry]
Type=Application
Terminal=false
Name=sql Developer
Exec=sh -c '$HOME/bin/launch-sqldeveloper.sh %F'
Icon=/opt/sqldeveloper/icon.png
StartupWMClass=oracle-ide-osgi-boot-OracleIdeLauncher

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐