When I create a launcher item for jvisualvm according to the regular procedure described here, it does not behave as expected. Instead of just starting the app, it starts the app as a different item... What's going on???

Steps to reproduce:

  1. Download and install Oracle JDK 1.7.0 in ~/jdk1.7.0 here
  2. Create a visualvm.desktop file according to the regular procedure, set the executable to be ~/jdk1.7.0/bin/jvisualvm
  3. Drag the visualvm.desktop file onto the launcher
  4. Start the app via the new launcher


  • VisualVM starts as a regular app

What actually happens:

  • VisualVM does start up, but it manifests as a new, different item in the launcher instead of the one I just created
  • This new item has a nice icon, so I try to keep it instead of the old one by checking "Keep In Launcher", however, when I click on this new item, nothing happens???

So my question is this: how can I create a well-behaved item in the launcher for jvisualvm?

  • have you actually installed JDK1.7 correctly? run java --version – fossfreedom Aug 14 '11 at 17:56
  • 1
    please post the contents of your .desktop file – con-f-use Aug 14 '11 at 18:11

This is a known issue with many JAVA applications, the BAMF framework (that is responsible for matching windows to their desktop files) fails in these cases. See this bug report: https://bugs.launchpad.net/bamf/+bug/757991


This issue is a documented bug at: https://bugs.launchpad.net/ubuntu/+source/visualvm/+bug/657048?comments=all

The /usr/bin/jvisualvm startup script (around line 13) is looking for: /usr/lib/jvm/java-6-openjdk : sv@ubu:~$ grep -n /usr/lib/jvm /usr/bin/jvisualvm 13:for j in /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun; do

And, assuming the openjdk-6-jdk package is already installed (sudo apt-get install openjdk-6-jdk), there is no link in /usr/lib/jvm for /usr/lib/jvm/java-6-openjdk: sv@ubu:~$ ls /usr/lib/jvm java-1.6.0-openjdk-amd64 java-6-openjdk-amd64 java-6-openjdk-common

Here's what worked for us:

So, to match things up and make the program work, simply create a symlink: sv@ubu:~$ sudo ln -s /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-openjdk

Note: I am using Ubuntu 12.04 64-bit version, so you may have to adjust your symlink accordingly.


Use the answer from HERE. It is an application which allows you to add no-native applications to the panel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.