It is a shame that I spent so much time on JDeveloper itself. But the default icon for JDeveloper make me crazy. Here is how it looks like after I make it as the icon for Ubuntu launcher.
Fortunately Oracle has a nice icon for JDeveloper in its official twitter account. It looks much better, isn't it? :)
Well, I thought everything was done and I can continue my work with JDeveloper. Then I found the icon in sidebar is not correct. It use the icon of Java. Shit.
Thanks to Google, I found the solution for this is to set StartupWMClass in the desktop file to tell unity it is a different application from other java applications. StartupWMClass can be found through command xprop|grep WM_CLASS. For JDevloper, it is oracle-ide-osgi-boot-JDeveloper. In a word, you can solve the problem by attaching the following line to your desktop file.
StartupWMClass=oracle-ide-osgi-boot-JDeveloper
That's all. And that's how programers waste their lives. :)