我正在戴尔桌面上安装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
答案 0 :(得分:2)
在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文件引用。
将其存储为$ 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 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
答案 1 :(得分:0)
假设您已经验证图标位于sqldeveloper.desktop指向的位置(您可以从终端尝试ls /opt/sqldeveloper/icon.png
)。
只需将此行添加到sqldeveloper.desktop文件
即可StartupWMClass=oracle-ide-boot-Launcher
保存更改后,不要忘记运行命令sudo update-desktop-database
。
这对我有用https://askubuntu.com/questions/458554/how-to-install-sql-developer-on-ubuntu-14-04