I run a java program (smartgit for example). What I see in the launcher is just a question mark.
Marking the "Keep in Launcher" doesn't open the app. It just blinks for several seconds and stops blinking (no app is launched).
I even created a launcher file (.desktop) and also did not work.
I followed this but did not help. (Defined StartupWMClass in the launcher file)
It seems that the side bar icon does not even point to the launcher file, because after enabling the Terminal, the terminal is shown when running from the command line or nautilus but not when running from the launcher.
Here is the content of the launcher file (Perhaps this will help):
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/home/alik/Apps/smartgit-2_1_6/bin/smartgit-48.png
Name[en_US]=SmartGit
Exec=/home/alik/Apps/smartgit-2_1_6/bin/smartgit.sh
Name=SmartGit
Icon=/home/alik/Apps/smartgit-2_1_6/bin/smartgit-48.png
#StartupWMClass=sun-awt-X11-XFramePeer
#StartupWMClass=SmartGit
I have almost the same problem with SmartGit and any java/mono application like Eclipse by the way. And it seems I have found the solution here. But I will be able to try it latter.
Update: I have tried it and this method works great for me. I have made shortcuts for eclipse, keepass and smartgit. Try it.