JDK Mission Control (JMC) 8.0 and 8.0.1 starts with Oracle JDK 8 (64-bit), and from JMC 8.1.0 onwards it requires Oracle JDK 11 and later. However, JMC 8 supports Java Management Console (JMX) monitoring and Java Flight Recorder (JFR) profiling of JVMs (JDK 7u40 and later) on any supported platform.
hsperfdata_username
directory is present in the Windows $TEMP
directory (for example, C:\Users\user_name\AppData\Local\Temp\hsperfdata_username) and is writable by the user. In case there are any issues while starting JMC with user permissions, then start JMC as an administrator. Also ensure that you are using a file system that supports ACL.
-Dcom.sun.management.jmxremote
Depending on your platform, run the following commands:
Linux
$ tar zxf jmc-<version>_linux-x64.tar.gz
$ ./jmc-<version>_linux-x64/JDK\ Mission\ Control/jmc
For example:
$ tar zxf jmc-8.3.1_linux-x64.tar.gz
$ ./jmc-8.3.1_linux-x64/JDK\ Mission\ Control/jmc
macOS x64
$ tar zxf jmc-<version>_macos-x64.tar.gz
$ open ./jmc-<version>_macos-x64/JDK\ Mission\ Control.app
For example:
$ tar zxf jmc-8.3.1_macos-x64.tar.gz
$ open ./jmc-8.3.1_macos-x64/JDK\ Mission\ Control.app
macOS ARM
$ tar zxf jmc-<version>_macos-aarch64.tar.gz
$ open ./jmc-<version>_macos-aarch64/JDK\ Mission\ Control.app
For example:
$ tar zxf jmc-8.3.1_macos-aarch64.tar.gz
$ open ./jmc-8.3.1_macos-aarch64/JDK\ Mission\ Control.app
Or
Double-click JDK Mission Control
from Finder or drag JDK Mission Control.app to the Applications
directory to access from Launchpad.
Windows
jar xvf "jmc-<version>_windows-x64.zip"
".\jmc-<version>_windows-x64\JDK Mission Control\jmc.exe"
For example:
jar xvf "jmc-8.3.1_windows-x64.zip"
".\jmc-8.3.1_windows-x64\JDK Mission Control\jmc.exe"
Or
Double-click jmc.exe
from Windows Explorer.
If there are multiple JDK versions installed, it is recommended to use the latest version of JDK to run JMC.
Edit the JMC launch configuration (jmc.ini)
file and add the location of the JDK version to use (JDK 8 (64-bit) or later required). In Windows and Linux, the jmc.ini
file is found under the JDK Mission Control
directory; and in macOS, under JDK\ Mission\ Control.app/Contents/Eclipse
directory.
Add the -vm
flag and <JDK installation path>/bin
(<JDK installation path>\bin
for windows) as shown in the following example. Ensure it is added just before the -vmargs
flag.
Windows
-vm
C:\Program Files\Java\jdk-11.0.19\bin
-vmargs
macOS
-vm
/Library/Java/JavaVirtualMachines/jdk-11.0.19.jdk/Contents/Home/bin
-vmargs
Linux
-vm
/usr/java/jdk-11.0.19/bin
-vmargs
Below is a sample of jmc.ini
from the Windows platform:
-startup
plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.500.v20220509-0833
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk-11.0.19\bin
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
-XX:+UnlockDiagnosticVMOptions
-XX:+DebugNonSafepoints
-XX:FlightRecorderOptions=stackdepth=128
-XX:+FlightRecorder
-XX:StartFlightRecording=name=JMC_Default,maxsize=100m
-Djava.net.preferIPv4Stack=true
-Djdk.attach.allowAttachSelf=true
--add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED
--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-exports=java.management/sun.management=ALL-UNNAMED
--add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED
--add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED
--add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
-Dsun.java.command=JMC
--add-exports=java.desktop/sun.awt.windows=ALL-UNNAMED