Java Mission Control displaying "Flightrecorder is not supported for non hotspot jvms"

java, jmc

Solution

Here I am posting the solution and observations that lead to the solution.

When I (by coincidence) tried to run `jvisualvm` it displayed error "Local Java applications cannot be monitored". On http://visualvm.java.net/troubleshooting.html in section titled "Local Applications Cannot Be Monitored (Error Dialog On Startup)" I found that on Windows system there could be problem with one exact folder name if the account name contains capitalized letters.

Solution was to alter the name of folder `%TMP%\hsperfdata_username` in a way that the capitalization corresponds with the my username (there was 'e' instead of 'E' in the folder name). After this change, both `jmc` and `jvisualvm` started to work again.

Note: you need to kill all currently running Java applications before changing the name of the folder.

Problem

When I was trying to profile my local Java application by running Java Mission Control (`jmc`), I wasn't able to connect to the application. It displayed 'Flightrecorder is not supported for non hotspot JVMs' in the description of all JVM processes displayed in the left pane. My environment: Windows 7, Java 8u25 Because I wasn't able to find solution for this problem anywhere on the net, I want to share the solution that I luckily discovered for other people (and my future self) who might run into the same problem in the future.

Original source