Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
have you actually installed JDK1.7 correctly? run java --version – fossfreedom Aug 14 '11 at 17:56
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:

share|improve this answer

This issue is a documented bug at:

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.

share|improve this answer

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

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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