JDK Mission Control 8 Early-Access Installation Instructions

This is a draft document. The contents are subject to change until release.

JDK Mission Control (JMC) 8 starts with Oracle JDK 8 (64-bit) 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.

Prerequisite

JMC Usage Instructions

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.0.0_linux-x64.tar.gz
$ ./jmc-8.0.0_linux-x64/JDK\ Mission\ Control/jmc
   
   

macOS


$ tar zxf jmc-<version>_osx-x64.tar.gz
$ open ./jmc-<version>_osx-x64/JDK\ Mission\ Control.app
   

For example:


$ tar zxf jmc-8.0.0_osx-x64.tar.gz
$ open ./jmc-8.0.0_osx-x64/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.0.0_windows-x64.zip"
".\jmc-8.0.0_windows-x64\JDK Mission Control\jmc.exe"
   

Or

Double-click jmc.exe from Windows Explorer. 

Specify the JDK Version to be Used by JMC

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.10\bin
-vmargs

macOS

  
-vm
/Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk/Contents/Home/bin
-vmargs

Linux

 
-vm
/usr/java/jdk-11.0.10/bin
-vmargs

Below is a sample of jmc.ini from the Windows platform:

  
-startup
plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk-11.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
-Dorg.eclipse.swt.browser.DefaultType=chromium
--add-exports=java.desktop/sun.awt.windows=ALL-UNNAMED