The problem is that Ubuntu does not use the GNOME_DESKTOP_SESSION_ID:
dude@vm311:~$ echo $GNOME_DESKTOP_SESSION_ID
So the launcher.sh script of SQL Developer will use "this-is-deprecated" instead of creating this variable.
Here is the relevant portion in the script:
if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] ; then
The fix is relatively simple: Either unset the environment variable, or force it's creation in the launcher.sh script (simply remove the ! in the -z condition). Unless the SQL Developers address this, it's probably best to simply unset the variable prior to starting SQL Developer:
dude@vm311:~$ unset GNOME_DESKTOP_SESSION_ID