Recently I've had a need to use Java Mission Control (JMC) to look at some Java Flight Recorder (JFR) files for a piece of code I've been analysing for performance issues. The piece of code didn't require being run in production so I decided to do the analysis on my Mac instead of one of the dev servers. This is where I ran into issues...whenever JMC was launched, it would freeze.
This appears to be an issue that was introduced in JDK 8u152 (and is still not fixed in JDK 8u231). The problem is due to incompatibilities between SWT and the fixes in 8u152. There are a number of workarounds for this however.
If you need to use JMC, you can do one of the following:
- Use JMC from the latest JDK 7 (I would not recommend as this is quite old now)
- Copy the latest SWT jar into the JDK as per this SO post (would not recommend as this would change the App bundle)
- Use JMC 6 from JDK 9
- Use the standalone latest distribution of JMC (as it's no longer bundled with the JDK)
A quick disclaimer...
Although I put in a great effort into researching all the topics I cover, mistakes can happen.
Use of any information from my blog posts should be at own risk and I do not hold any liability towards any information misuse or damages caused by following any of my posts.
All content and opinions expressed on this Blog are my own and do not represent the opinions of my employer (Oracle).
Use of any information contained in this blog post/article is subject to this disclaimer