JDK Mission Control (JMC) 9.0 requires Oracle JDK 17 or later for operation. However, JMC 9 supports Java Management Console (JMX) monitoring and Java Flight Recorder (JFR) profiling of JVMs running on JDK 7u40 or later across all supported platforms.
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 x64
$ tar zxf jmc-<version>_linux-x64.tar.gz
$ ./jmc-<version>_linux-x64/JDK\ Mission\ Control/jmc
For example:
$ tar zxf jmc-9.0.0_linux-x64.tar.gz
$ ./jmc-9.0.0_linux-x64/JDK\ Mission\ Control/jmc
Linux ARM
$ tar zxf jmc-<version>_linux-aarch64.tar.gz
$ ./jmc-<version>_linux-aarch64/JDK\ Mission\ Control/jmc
For example:
$ tar zxf jmc-9.0.0_linux-aarch64.tar.gz
$ ./jmc-9.0.0_linux-aarch64/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-9.0.0_macos-x64.tar.gz
$ open ./jmc-9.0.0_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-9.0.0_macos-aarch64.tar.gz
$ open ./jmc-9.0.0_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-9.0.0_windows-x64.zip"
".\jmc-9.0.0_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 17 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-17.0.10\bin
-vmargs
macOS
-vm
/Library/Java/JavaVirtualMachines/jdk-17.0.10.jdk/Contents/Home/bin
-vmargs
Linux
-vm
/usr/java/jdk-17.0.10/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-17.0.10\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