blob: 326db092315e640c1e48bc33487bedf512cd0fb8 [file] [log] [blame]
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Eclipse OpenJ9 documentation">
<link rel="canonical" href="https://www.eclipse.org/openj9/docs/xshareclasses/">
<link rel="icon" href="../cr/openj9-logo.svg">
<meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.4">
<title>-Xshareclasses - </title>
<link rel="stylesheet" href="../assets/stylesheets/main.bde7dde4.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.ef6f36e2.min.css">
<meta name="theme-color" content="#009485">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>:root{--md-text-font-family:"Roboto";--md-code-font-family:"Roboto Mono"}</style>
<link rel="stylesheet" href="../stylesheets/oj9.css">
</head>
<body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="cyan">
<script>function __prefix(e){return new URL("..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#-xshareclasses" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title=" " class="md-header__button md-logo" aria-label=" " data-md-component="logo">
<img src="../cr/openj9_6b.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
-Xshareclasses
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</label>
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/eclipse-openj9/openj9" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
eclipse-openj9/openj9
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title=" " class="md-nav__button md-logo" aria-label=" " data-md-component="logo">
<img src="../cr/openj9_6b.png" alt="logo">
</a>
</label>
<div class="md-nav__source">
<a href="https://github.com/eclipse-openj9/openj9" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
eclipse-openj9/openj9
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
About the docs
</a>
</li>
<li class="md-nav__item">
<a href="../builds/" class="md-nav__link">
OpenJ9 builds
</a>
</li>
<li class="md-nav__item">
<a href="../introduction/" class="md-nav__link">
Getting started
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_newuser/" class="md-nav__link">
New to OpenJ9?
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5">
Release notes
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Release notes" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Release notes
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../openj9_releases/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../version0.35/" class="md-nav__link">
Version 0.35.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.33/" class="md-nav__link">
Version 0.33.x
</a>
</li>
<li class="md-nav__item">
<a href="../version0.32/" class="md-nav__link">
Version 0.32.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.30.1/" class="md-nav__link">
Version 0.30.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.30/" class="md-nav__link">
Version 0.30.0
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_7" type="checkbox" id="__nav_5_7" >
<label class="md-nav__link" for="__nav_5_7">
Earlier releases
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Earlier releases" data-md-level="2">
<label class="md-nav__title" for="__nav_5_7">
<span class="md-nav__icon md-icon"></span>
Earlier releases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../version0.29.1/" class="md-nav__link">
Version 0.29.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.29/" class="md-nav__link">
Version 0.29.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.27/" class="md-nav__link">
Version 0.27.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.26/" class="md-nav__link">
Version 0.26.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.25/" class="md-nav__link">
Version 0.25.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.24/" class="md-nav__link">
Version 0.24.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.23/" class="md-nav__link">
Version 0.23.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.22/" class="md-nav__link">
Version 0.22.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.21/" class="md-nav__link">
Version 0.21.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.20/" class="md-nav__link">
Version 0.20.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.19/" class="md-nav__link">
Version 0.19.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.18/" class="md-nav__link">
Version 0.18.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.17/" class="md-nav__link">
Version 0.17.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.16/" class="md-nav__link">
Version 0.16.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.15/" class="md-nav__link">
Version 0.15.1
</a>
</li>
<li class="md-nav__item">
<a href="../version0.14/" class="md-nav__link">
Version 0.14.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.13/" class="md-nav__link">
Version 0.13.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.12/" class="md-nav__link">
Version 0.12.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.11/" class="md-nav__link">
Version 0.11.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.10/" class="md-nav__link">
Version 0.10.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.9/" class="md-nav__link">
Version 0.9.0
</a>
</li>
<li class="md-nav__item">
<a href="../version0.8/" class="md-nav__link">
Version 0.8.0
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6">
Migrating
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Migrating" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Migrating
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../migrating8to11/" class="md-nav__link">
Migrating from Java 8 to Java 11
</a>
</li>
<li class="md-nav__item">
<a href="../migrating11to17/" class="md-nav__link">
Migrating from Java 11 to Java 17
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../configuring/" class="md-nav__link">
Configuring your system
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8">
Memory management
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Memory management" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Memory management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../allocation/" class="md-nav__link">
Heap allocation
</a>
</li>
<li class="md-nav__item">
<a href="../gc_overview/" class="md-nav__link">
Garbage Collection (GC)
</a>
</li>
<li class="md-nav__item">
<a href="../gc/" class="md-nav__link">
GC policies
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8_4" type="checkbox" id="__nav_8_4" >
<label class="md-nav__link" for="__nav_8_4">
Troubleshooting GC
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Troubleshooting GC" data-md-level="2">
<label class="md-nav__title" for="__nav_8_4">
<span class="md-nav__icon md-icon"></span>
Troubleshooting GC
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../vgclog/" class="md-nav__link">
Verbose GC logs
</a>
</li>
<li class="md-nav__item">
<a href="../vgclog_examples/" class="md-nav__link">
Log examples
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../jit/" class="md-nav__link">
JIT Compiler
</a>
</li>
<li class="md-nav__item">
<a href="../jitserver/" class="md-nav__link">
JITServer technology
</a>
</li>
<li class="md-nav__item">
<a href="../jitserver_tuning/" class="md-nav__link">
JITServer tuning
</a>
</li>
<li class="md-nav__item">
<a href="../aot/" class="md-nav__link">
AOT Compiler
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_13" type="checkbox" id="__nav_13" >
<label class="md-nav__link" for="__nav_13">
Class data sharing
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Class data sharing" data-md-level="1">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
Class data sharing
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../shrc/" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item">
<a href="../shrc_diag_util/" class="md-nav__link">
Diagnosing problems
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../attachapi/" class="md-nav__link">
Java Attach API
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15" type="checkbox" id="__nav_15" >
<label class="md-nav__link" for="__nav_15">
Diagnostics
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Diagnostics" data-md-level="1">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
Diagnostics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../diag_overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_2" type="checkbox" id="__nav_15_2" >
<label class="md-nav__link" for="__nav_15_2">
Dumps
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Dumps" data-md-level="2">
<label class="md-nav__title" for="__nav_15_2">
<span class="md-nav__icon md-icon"></span>
Dumps
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dump_javadump/" class="md-nav__link">
Java dump
</a>
</li>
<li class="md-nav__item">
<a href="../dump_heapdump/" class="md-nav__link">
Heap dump
</a>
</li>
<li class="md-nav__item">
<a href="../dump_systemdump/" class="md-nav__link">
System dump
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_3" type="checkbox" id="__nav_15_3" >
<label class="md-nav__link" for="__nav_15_3">
Tools
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Tools" data-md-level="2">
<label class="md-nav__title" for="__nav_15_3">
<span class="md-nav__icon md-icon"></span>
Tools
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../tool_jextract/" class="md-nav__link">
Dump extractor
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jdmpview/" class="md-nav__link">
Dump viewer
</a>
</li>
<li class="md-nav__item">
<a href="../tool_traceformat/" class="md-nav__link">
Trace formatter
</a>
</li>
<li class="md-nav__item">
<a href="../tool_builder/" class="md-nav__link">
Option builder
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jcmd/" class="md-nav__link">
Java command (jcmd) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jmap/" class="md-nav__link">
Java memory map (jmap) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jps/" class="md-nav__link">
Java process status (jps)
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jstack/" class="md-nav__link">
Java stack (jstack) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_jstat/" class="md-nav__link">
Java statistics monitoring (jstat) tool
</a>
</li>
<li class="md-nav__item">
<a href="../tool_migration/" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_15_4" type="checkbox" id="__nav_15_4" >
<label class="md-nav__link" for="__nav_15_4">
Interfaces
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Interfaces" data-md-level="2">
<label class="md-nav__title" for="__nav_15_4">
<span class="md-nav__icon md-icon"></span>
Interfaces
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../interface_jvmti/" class="md-nav__link">
JVMTI
</a>
</li>
<li class="md-nav__item">
<a href="../interface_dtfj/" class="md-nav__link">
DTFJ
</a>
</li>
<li class="md-nav__item">
<a href="../interface_lang_management/" class="md-nav__link">
Language Management
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16" type="checkbox" id="__nav_16" checked>
<label class="md-nav__link" for="__nav_16">
Command-line options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Command-line options" data-md-level="1">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
Command-line options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../cmdline_specifying/" class="md-nav__link">
Specifying options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_general/" class="md-nav__link">
Standard options
</a>
</li>
<li class="md-nav__item">
<a href="../cmdline_migration/" class="md-nav__link">
Switching to OpenJ9
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_4" type="checkbox" id="__nav_16_4" >
<label class="md-nav__link" for="__nav_16_4">
System property options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="System property options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_4">
<span class="md-nav__icon md-icon"></span>
System property options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../d_jvm_commands/" class="md-nav__link">
Using System properties
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenableclasscaching/" class="md-nav__link">
-Dcom.ibm.enableClassCaching
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacydumpsecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyDumpSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacylogsecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyLogSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmenablelegacytracesecurity/" class="md-nav__link">
-Dcom.ibm.enableLegacyTraceSecurity
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpudisable/" class="md-nav__link">
-Dcom.ibm.gpu.disable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpuenable/" class="md-nav__link">
-Dcom.ibm.gpu.enable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmgpuverbose/" class="md-nav__link">
-Dcom.ibm.gpu.verbose
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementosmxbeaniscputime100ns/" class="md-nav__link">
-Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmlangmanagementverbose/" class="md-nav__link">
-Dcom.ibm.lang.management.verbose
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmotisharedsharedclassglobalfilterclass/" class="md-nav__link">
-Dcom.ibm.oti.shared.SharedClassGlobalFilterClass
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachcommand_timeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.command_timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdirectory/" class="md-nav__link">
-Dcom.ibm.tools.attach.directory
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachdisplayname/" class="md-nav__link">
-Dcom.ibm.tools.attach.displayName
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachenable/" class="md-nav__link">
-Dcom.ibm.tools.attach.enable
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachid/" class="md-nav__link">
-Dcom.ibm.tools.attach.id
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachlogging/" class="md-nav__link">
-Dcom.ibm.tools.attach.logging
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachlogname/" class="md-nav__link">
-Dcom.ibm.tools.attach.log.name
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachshutdown_timeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.shutdown_timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dcomibmtoolsattachtimeout/" class="md-nav__link">
-Dcom.ibm.tools.attach.timeout
</a>
</li>
<li class="md-nav__item">
<a href="../dfileencoding/" class="md-nav__link">
-Dfile.encoding
</a>
</li>
<li class="md-nav__item">
<a href="../djavacompiler/" class="md-nav__link">
-Djava.compiler
</a>
</li>
<li class="md-nav__item">
<a href="../djavalangstringsubstringnocopy/" class="md-nav__link">
-Djava.lang.string.substring.nocopy
</a>
</li>
<li class="md-nav__item">
<a href="../djavalangstringbuffergrowaggressively/" class="md-nav__link">
-Djava.lang.stringBuffer.growAggressively
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecbc/" class="md-nav__link">
-Djdk.nativeCBC
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativechacha20/" class="md-nav__link">
-Djdk.nativeChaCha20
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativecrypto/" class="md-nav__link">
-Djdk.nativeCrypto
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativedigest/" class="md-nav__link">
-Djdk.nativeDigest
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativegcm/" class="md-nav__link">
-Djdk.nativeGCM
</a>
</li>
<li class="md-nav__item">
<a href="../djdknativersa/" class="md-nav__link">
-Djdk.nativeRSA
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_5" type="checkbox" id="__nav_16_5" checked>
<label class="md-nav__link" for="__nav_16_5">
JVM -X options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="JVM -X options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_5">
<span class="md-nav__icon md-icon"></span>
JVM -X options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../x_jvm_commands/" class="md-nav__link">
Using -X options
</a>
</li>
<li class="md-nav__item">
<a href="../x/" class="md-nav__link">
-X
</a>
</li>
<li class="md-nav__item">
<a href="../xaggressive/" class="md-nav__link">
-Xaggressive
</a>
</li>
<li class="md-nav__item">
<a href="../xalwaysclassgc/" class="md-nav__link">
-Xalwaysclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" class="md-nav__link">
-Xaot
</a>
</li>
<li class="md-nav__item">
<a href="../xargencoding/" class="md-nav__link">
-Xargencoding
</a>
</li>
<li class="md-nav__item">
<a href="../xbootclasspath/" class="md-nav__link">
-Xbootclasspath
</a>
</li>
<li class="md-nav__item">
<a href="../xceehdlr/" class="md-nav__link">
-XCEEHDLR
</a>
</li>
<li class="md-nav__item">
<a href="../xcheck/" class="md-nav__link">
-Xcheck
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" class="md-nav__link">
-Xclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecache/" class="md-nav__link">
-Xcodecache
</a>
</li>
<li class="md-nav__item">
<a href="../xcodecachetotal/" class="md-nav__link">
-Xcodecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xcomp/" class="md-nav__link">
-Xcomp
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" class="md-nav__link">
-Xcompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" class="md-nav__link">
-Xcompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompilationthreads/" class="md-nav__link">
-XcompilationThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" class="md-nav__link">
-Xcompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentbackground/" class="md-nav__link">
-Xconcurrentbackground
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentlevel/" class="md-nav__link">
-Xconcurrentlevel
</a>
</li>
<li class="md-nav__item">
<a href="../xconcurrentslack/" class="md-nav__link">
-Xconcurrentslack
</a>
</li>
<li class="md-nav__item">
<a href="../xconmeter/" class="md-nav__link">
-Xconmeter
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" class="md-nav__link">
-Xdisableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" class="md-nav__link">
-Xdisableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdisablejavadump/" class="md-nav__link">
-Xdisablejavadump
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" class="md-nav__link">
-Xdisablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xdump/" class="md-nav__link">
-Xdump
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexcessivegc/" class="md-nav__link">
-Xenableexcessivegc
</a>
</li>
<li class="md-nav__item">
<a href="../xenableexplicitgc/" class="md-nav__link">
-Xenableexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xenablestringconstantgc/" class="md-nav__link">
-Xenablestringconstantgc
</a>
</li>
<li class="md-nav__item">
<a href="../xfastresolve/" class="md-nav__link">
-Xfastresolve
</a>
</li>
<li class="md-nav__item">
<a href="../xfuture/" class="md-nav__link">
-Xfuture
</a>
</li>
<li class="md-nav__item">
<a href="../xgc/" class="md-nav__link">
-Xgc
</a>
</li>
<li class="md-nav__item">
<a href="../xgcsplitheap/" class="md-nav__link">
-Xgc:splitheap
</a>
</li>
<li class="md-nav__item">
<a href="../xgcmaxthreads/" class="md-nav__link">
-Xgcmaxthreads
</a>
</li>
<li class="md-nav__item">
<a href="../xgcpolicy/" class="md-nav__link">
-Xgcpolicy
</a>
</li>
<li class="md-nav__item">
<a href="../xgcthreads/" class="md-nav__link">
-Xgcthreads
</a>
</li>
<li class="md-nav__item">
<a href="../xgcworkpackets/" class="md-nav__link">
-Xgcworkpackets
</a>
</li>
<li class="md-nav__item">
<a href="../xint/" class="md-nav__link">
-Xint
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xiss
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" class="md-nav__link">
-Xjit
</a>
</li>
<li class="md-nav__item">
<a href="../xjni/" class="md-nav__link">
-Xjni
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" class="md-nav__link">
-Xlinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" class="md-nav__link">
-Xloa
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloainitial
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloamaximum
</a>
</li>
<li class="md-nav__item">
<a href="../xloaminimum/" class="md-nav__link">
-Xloaminimum
</a>
</li>
<li class="md-nav__item">
<a href="../xlockreservation/" class="md-nav__link">
-XlockReservation
</a>
</li>
<li class="md-nav__item">
<a href="../xlockword/" class="md-nav__link">
-Xlockword
</a>
</li>
<li class="md-nav__item">
<a href="../xlog/" class="md-nav__link">
-Xlog
</a>
</li>
<li class="md-nav__item">
<a href="../xlp/" class="md-nav__link">
-Xlp
</a>
</li>
<li class="md-nav__item">
<a href="../xlpcodecache/" class="md-nav__link">
-Xlp:codecache
</a>
</li>
<li class="md-nav__item">
<a href="../xlpobjectheap/" class="md-nav__link">
-Xlp:objectheap
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" class="md-nav__link">
-Xmaxe
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" class="md-nav__link">
-Xmaxf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" class="md-nav__link">
-Xmaxt
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" class="md-nav__link">
-Xmca
</a>
</li>
<li class="md-nav__item">
<a href="../xmca/" class="md-nav__link">
-Xmco
</a>
</li>
<li class="md-nav__item">
<a href="../xmcrs/" class="md-nav__link">
-Xmcrs
</a>
</li>
<li class="md-nav__item">
<a href="../xmine/" class="md-nav__link">
-Xmine
</a>
</li>
<li class="md-nav__item">
<a href="../xminf/" class="md-nav__link">
-Xminf
</a>
</li>
<li class="md-nav__item">
<a href="../xmint/" class="md-nav__link">
-Xmint
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmn
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmns
</a>
</li>
<li class="md-nav__item">
<a href="../xmn/" class="md-nav__link">
-Xmnx
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmo
</a>
</li>
<li class="md-nav__item">
<a href="../xmoi/" class="md-nav__link">
-Xmoi
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmos
</a>
</li>
<li class="md-nav__item">
<a href="../xmo/" class="md-nav__link">
-Xmox
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" class="md-nav__link">
-Xmr
</a>
</li>
<li class="md-nav__item">
<a href="../xmr/" class="md-nav__link">
-Xmrx
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" class="md-nav__link">
-Xms
</a>
</li>
<li class="md-nav__item">
<a href="../xmso/" class="md-nav__link">
-Xmso
</a>
</li>
<li class="md-nav__item">
<a href="../xms/" class="md-nav__link">
-Xmx
</a>
</li>
<li class="md-nav__item">
<a href="../xaot/" class="md-nav__link">
-Xnoaot
</a>
</li>
<li class="md-nav__item">
<a href="../xclassgc/" class="md-nav__link">
-Xnoclassgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactexplicitgc/" class="md-nav__link">
-Xnocompactexplicitgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompactgc/" class="md-nav__link">
-Xnocompactgc
</a>
</li>
<li class="md-nav__item">
<a href="../xcompressedrefs/" class="md-nav__link">
-Xnocompressedrefs
</a>
</li>
<li class="md-nav__item">
<a href="../xjit/" class="md-nav__link">
-Xnojit
</a>
</li>
<li class="md-nav__item">
<a href="../xlinenumbers/" class="md-nav__link">
-Xnolinenumbers
</a>
</li>
<li class="md-nav__item">
<a href="../xloa/" class="md-nav__link">
-Xnoloa
</a>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" class="md-nav__link">
-Xnosigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" class="md-nav__link">
-Xnosigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xnumanone/" class="md-nav__link">
-Xnuma:none
</a>
</li>
<li class="md-nav__item">
<a href="../xoptionsfile/" class="md-nav__link">
-Xoptionsfile
</a>
</li>
<li class="md-nav__item">
<a href="../xquickstart/" class="md-nav__link">
-Xquickstart
</a>
</li>
<li class="md-nav__item">
<a href="../xrs/" class="md-nav__link">
-Xrs
</a>
</li>
<li class="md-nav__item">
<a href="../xsamplingexpirationtime/" class="md-nav__link">
-XsamplingExpirationTime
</a>
</li>
<li class="md-nav__item">
<a href="../xscdmx/" class="md-nav__link">
-Xscdmx
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" class="md-nav__link">
-Xscmaxaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" class="md-nav__link">
-Xscmaxjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscminaot/" class="md-nav__link">
-Xscminaot
</a>
</li>
<li class="md-nav__item">
<a href="../xscminjitdata/" class="md-nav__link">
-Xscminjitdata
</a>
</li>
<li class="md-nav__item">
<a href="../xscmx/" class="md-nav__link">
-Xscmx
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
-Xshareclasses
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
-Xshareclasses
</a>
<nav class="md-nav md-nav--secondary" aria-label="On this page...">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
On this page...
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#syntax" class="md-nav__link">
Syntax
</a>
</li>
<li class="md-nav__item">
<a href="#parameters" class="md-nav__link">
Parameters
</a>
<nav class="md-nav" aria-label="Parameters">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#adjustmaxaot-cache-utility" class="md-nav__link">
adjustmaxaot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustminaot-cache-utility" class="md-nav__link">
adjustminaot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustmaxjitdata-cache-utility" class="md-nav__link">
adjustmaxjitdata (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustminjitdata-cache-utility" class="md-nav__link">
adjustminjitdata (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustsoftmx-cache-utility" class="md-nav__link">
adjustsoftmx (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#allowclasspaths" class="md-nav__link">
allowClasspaths
</a>
</li>
<li class="md-nav__item">
<a href="#bootclassesonly" class="md-nav__link">
bootClassesOnly
</a>
</li>
<li class="md-nav__item">
<a href="#cachedir" class="md-nav__link">
cacheDir
</a>
</li>
<li class="md-nav__item">
<a href="#cachedirperm" class="md-nav__link">
cacheDirPerm
</a>
</li>
<li class="md-nav__item">
<a href="#cacheretransformed" class="md-nav__link">
cacheRetransformed
</a>
</li>
<li class="md-nav__item">
<a href="#checkurltimestamps" class="md-nav__link">
checkURLTimestamps
</a>
</li>
<li class="md-nav__item">
<a href="#createlayer" class="md-nav__link">
createLayer
</a>
</li>
<li class="md-nav__item">
<a href="#destroy-cache-utility" class="md-nav__link">
destroy (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyall-cache-utility" class="md-nav__link">
destroyAll (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyalllayers-cache-utility" class="md-nav__link">
destroyAllLayers (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyallsnapshots-cache-utility" class="md-nav__link">
destroyAllSnapshots (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroysnapshot-cache-utility" class="md-nav__link">
destroySnapshot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#disablebci" class="md-nav__link">
disableBCI
</a>
</li>
<li class="md-nav__item">
<a href="#enablebci" class="md-nav__link">
enableBCI
</a>
</li>
<li class="md-nav__item">
<a href="#expire-cache-utility" class="md-nav__link">
expire (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#fatal" class="md-nav__link">
fatal
</a>
</li>
<li class="md-nav__item">
<a href="#findaotmethods-cache-utility" class="md-nav__link">
findAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#groupaccess" class="md-nav__link">
groupAccess
</a>
</li>
<li class="md-nav__item">
<a href="#help" class="md-nav__link">
help
</a>
</li>
<li class="md-nav__item">
<a href="#invalidateaotmethods-cache-utility" class="md-nav__link">
invalidateAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#layer" class="md-nav__link">
layer
</a>
</li>
<li class="md-nav__item">
<a href="#listallcaches-cache-utility" class="md-nav__link">
listAllCaches (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#mprotect" class="md-nav__link">
mprotect
</a>
</li>
<li class="md-nav__item">
<a href="#modified" class="md-nav__link">
modified
</a>
</li>
<li class="md-nav__item">
<a href="#name" class="md-nav__link">
name
</a>
</li>
<li class="md-nav__item">
<a href="#noaot" class="md-nav__link">
noaot
</a>
</li>
<li class="md-nav__item">
<a href="#nobootclasspath" class="md-nav__link">
noBootclasspath
</a>
</li>
<li class="md-nav__item">
<a href="#notimestampchecks" class="md-nav__link">
noTimestampChecks
</a>
</li>
<li class="md-nav__item">
<a href="#nocheckurltimestamps" class="md-nav__link">
nocheckURLTimestamps
</a>
</li>
<li class="md-nav__item">
<a href="#nojitdata" class="md-nav__link">
nojitdata
</a>
</li>
<li class="md-nav__item">
<a href="#none" class="md-nav__link">
none
</a>
</li>
<li class="md-nav__item">
<a href="#nonfatal" class="md-nav__link">
nonfatal
</a>
</li>
<li class="md-nav__item">
<a href="#nonpersistent" class="md-nav__link">
nonpersistent
</a>
</li>
<li class="md-nav__item">
<a href="#nopersistentdiskspacecheck" class="md-nav__link">
noPersistentDiskSpaceCheck
</a>
</li>
<li class="md-nav__item">
<a href="#persistent" class="md-nav__link">
persistent
</a>
</li>
<li class="md-nav__item">
<a href="#printallstats-cache-utility" class="md-nav__link">
printAllStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#printstats-cache-utility" class="md-nav__link">
printStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#printtoplayerstats-cache-utility" class="md-nav__link">
printTopLayerStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#readonly" class="md-nav__link">
readonly
</a>
</li>
<li class="md-nav__item">
<a href="#reset" class="md-nav__link">
reset
</a>
</li>
<li class="md-nav__item">
<a href="#restorefromsnapshot-cache-utility" class="md-nav__link">
restoreFromSnapshot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#restrictclasspaths" class="md-nav__link">
restrictClasspaths
</a>
</li>
<li class="md-nav__item">
<a href="#revalidateaotmethods-cache-utility" class="md-nav__link">
revalidateAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#silent" class="md-nav__link">
silent
</a>
</li>
<li class="md-nav__item">
<a href="#snapshotcache-cache-utility" class="md-nav__link">
snapshotCache (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#utilities" class="md-nav__link">
utilities
</a>
</li>
<li class="md-nav__item">
<a href="#verbose" class="md-nav__link">
verbose
</a>
</li>
<li class="md-nav__item">
<a href="#verboseaot" class="md-nav__link">
verboseAOT
</a>
</li>
<li class="md-nav__item">
<a href="#verbosehelper" class="md-nav__link">
verboseHelper
</a>
</li>
<li class="md-nav__item">
<a href="#verboseio" class="md-nav__link">
verboseIO
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#method-specification-syntax" class="md-nav__link">
Method specification syntax
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../xsigcatch/" class="md-nav__link">
-Xsigcatch
</a>
</li>
<li class="md-nav__item">
<a href="../xsigchain/" class="md-nav__link">
-Xsigchain
</a>
</li>
<li class="md-nav__item">
<a href="../xsignal/" class="md-nav__link">
-Xsignal
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftmx/" class="md-nav__link">
-Xsoftmx
</a>
</li>
<li class="md-nav__item">
<a href="../xsoftrefthreshold/" class="md-nav__link">
-Xsoftrefthreshold
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xss
</a>
</li>
<li class="md-nav__item">
<a href="../xss/" class="md-nav__link">
-Xssi
</a>
</li>
<li class="md-nav__item">
<a href="../xsyslog/" class="md-nav__link">
-Xsyslog
</a>
</li>
<li class="md-nav__item">
<a href="../xtgc/" class="md-nav__link">
-Xtgc
</a>
</li>
<li class="md-nav__item">
<a href="../xthr/" class="md-nav__link">
-Xthr
</a>
</li>
<li class="md-nav__item">
<a href="../xtlhprefetch/" class="md-nav__link">
-XtlhPrefetch
</a>
</li>
<li class="md-nav__item">
<a href="../xtrace/" class="md-nav__link">
-Xtrace
</a>
</li>
<li class="md-nav__item">
<a href="../xtunevirtualized/" class="md-nav__link">
-Xtune:virtualized
</a>
</li>
<li class="md-nav__item">
<a href="../xverbosegclog/" class="md-nav__link">
-Xverbosegclog
</a>
</li>
<li class="md-nav__item">
<a href="../xverify/" class="md-nav__link">
-Xverify
</a>
</li>
<li class="md-nav__item">
<a href="../xzero/" class="md-nav__link">
-Xzero
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_16_6" type="checkbox" id="__nav_16_6" >
<label class="md-nav__link" for="__nav_16_6">
JVM -XX options
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="JVM -XX options" data-md-level="2">
<label class="md-nav__title" for="__nav_16_6">
<span class="md-nav__icon md-icon"></span>
JVM -XX options
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../xx_jvm_commands/" class="md-nav__link">
Using -XX options
</a>
</li>
<li class="md-nav__item">
<a href="../xxactiveprocessorcount/" class="md-nav__link">
-XXActiveProcessorCount
</a>
</li>
<li class="md-nav__item">
<a href="../xxadaptivegcthreading/" class="md-nav__link">
-XX:[+|-]AdaptiveGCThreading
</a>
</li>
<li class="md-nav__item">
<a href="../xxallowvmshutdown/" class="md-nav__link">
-XXallowvmshutdown
</a>
</li>
<li class="md-nav__item">
<a href="../xxalwayspretouch/" class="md-nav__link">
-XX:[+|-]AlwaysPreTouch
</a>
</li>
<li class="md-nav__item">
<a href="../xxclassrelationshipverifier/" class="md-nav__link">
-XX:[+|-]ClassRelationshipVerifier
</a>
</li>
<li class="md-nav__item">
<a href="../xxconcgcthreads/" class="md-nav__link">
-XX:ConcGCThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxcodecachetotal/" class="md-nav__link">
-XX:codecachetotal
</a>
</li>
<li class="md-nav__item">
<a href="../xxcompactstrings/" class="md-nav__link">
-XX:[+|-]CompactStrings
</a>
</li>
<li class="md-nav__item">
<a href="../xxdiagnosesynconvaluebasedclasses/" class="md-nav__link">
-XX:DiagnoseSyncOnValueBasedClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisableexplicitgc/" class="md-nav__link">
-XX:[+|-]DisableExplicitGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxdisclaimjitscratch/" class="md-nav__link">
-XX:[+|-]DisclaimJitScratch
</a>
</li>
<li class="md-nav__item">
<a href="../xxenable3164interoperability/" class="md-nav__link">
-XX:[+|-]Enable3164Interoperability
</a>
</li>
<li class="md-nav__item">
<a href="../xxenablecpumonitor/" class="md-nav__link">
-XX:[+|-]EnableCPUMonitor
</a>
</li>
<li class="md-nav__item">
<a href="../xxensurehashed/" class="md-nav__link">
-XX:[+|-]EnsureHashed
</a>
</li>
<li class="md-nav__item">
<a href="../xxexitonoutofmemoryerror/" class="md-nav__link">
-XX:[+|-]ExitOnOutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="../xxgloballockreservation/" class="md-nav__link">
-XX:[+|-]GlobalLockReservation
</a>
</li>
<li class="md-nav__item">
<a href="../xxhandlesigxfsz/" class="md-nav__link">
-XX:[+|-]HandleSIGXFSZ
</a>
</li>
<li class="md-nav__item">
<a href="../xxhandlesigabrt/" class="md-nav__link">
-XX:[+|-]HandleSIGABRT
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumponoutofmemory/" class="md-nav__link">
-XX:[+|-]HeapDumpOnOutOfMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapdumppath/" class="md-nav__link">
-XX:HeapDumpPath
</a>
</li>
<li class="md-nav__item">
<a href="../xxheapmanagementmxbeancompatibility/" class="md-nav__link">
-XX:[+|-]HeapManagementMXBeanCompatibility
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningcompactonidle/" class="md-nav__link">
-XX:[+|-]IdleTuningCompactOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuninggconidle/" class="md-nav__link">
-XX:[+|-]IdleTuningGcOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminfreeheaponidle/" class="md-nav__link">
-XX:IdleTuningMinFreeHeapOnIdle
</a>
</li>
<li class="md-nav__item">
<a href="../xxidletuningminidlewaittime/" class="md-nav__link">
-XX:IdleTuningMinIdleWaitTime
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedvmoptions/" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedVMOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxignoreunrecognizedxxcolonoptions/" class="md-nav__link">
-XX:[+|-]IgnoreUnrecognizedXXColonOptions
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" class="md-nav__link">
-XX:InitialRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" class="md-nav__link">
-XX:InitialHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinterleavememory/" class="md-nav__link">
-XX:[+|-]InterleaveMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitinlinewatches/" class="md-nav__link">
-XX:[+|-]JITInlineWatches
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveraddress/" class="md-nav__link">
-XX:JITServerAddress
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveraotcachename/" class="md-nav__link">
-XX:JITServerAOTCacheName
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserveruseaotcache/" class="md-nav__link">
-XX:[+|-]JITServerUseAOTCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverlocalsynccompiles/" class="md-nav__link">
-XX:[+|-]JITServerLocalSyncCompiles
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverlogconnections/" class="md-nav__link">
-XX:[+|-]JITServerLogConnections
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetrics/" class="md-nav__link">
-XX:JITServerMetrics
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricsport/" class="md-nav__link">
-XX:JITServerMetricsPort
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricssslkey/" class="md-nav__link">
-XX:JITServerMetricsSSLCert
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservermetricssslkey/" class="md-nav__link">
-XX:JITServerMetricsSSLKey
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserverport/" class="md-nav__link">
-XX:JITServerPort
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservershareromclasses/" class="md-nav__link">
-XX:JITServerShareROMClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLCert
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLKey
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitserversslcert/" class="md-nav__link">
-XX:JITServerSSLRootCerts
</a>
</li>
<li class="md-nav__item">
<a href="../xxjitservertimeout/" class="md-nav__link">
-XX:JITServerTimeout
</a>
</li>
<li class="md-nav__item">
<a href="../xxlazysymbolresolution/" class="md-nav__link">
-XX:[+|-]LazySymbolResolution
</a>
</li>
<li class="md-nav__item">
<a href="../xxlegacyxlogoption/" class="md-nav__link">
-XX:[+|-]LegacyXLogOption
</a>
</li>
<li class="md-nav__item">
<a href="../xxmaxdirectmemorysize/" class="md-nav__link">
-XX:MaxDirectMemorySize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialheapsize/" class="md-nav__link">
-XX:MaxHeapSize
</a>
</li>
<li class="md-nav__item">
<a href="../xxinitialrampercentage/" class="md-nav__link">
-XX:MaxRAMPercentage
</a>
</li>
<li class="md-nav__item">
<a href="../xxonoutofmemoryerror/" class="md-nav__link">
-XX:OnOutOfMemoryError
</a>
</li>
<li class="md-nav__item">
<a href="../xxopenj9commandlineenv/" class="md-nav__link">
-XX:[+|-]OpenJ9CommandLineEnv
</a>
</li>
<li class="md-nav__item">
<a href="../xxoriginaljdk8heapsizecompatibilitymode/" class="md-nav__link">
-XX:[+|-]OriginalJDK8HeapSizeCompatibilityMode
</a>
</li>
<li class="md-nav__item">
<a href="../xxnosuballoc32bitmem/" class="md-nav__link">
-XXnosuballoc32bitmem
</a>
</li>
<li class="md-nav__item">
<a href="../xxpagealigndirectmemory/" class="md-nav__link">
-XX:[+|-]PageAlignDirectMemory
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelcmsthreads/" class="md-nav__link">
-XX:ParallelCMSThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelgcmaxthreads/" class="md-nav__link">
-XX:ParallelGCMaxThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxparallelgcthreads/" class="md-nav__link">
-XX:ParallelGCThreads
</a>
</li>
<li class="md-nav__item">
<a href="../xxperftool/" class="md-nav__link">
-XX:[+|-]PerfTool
</a>
</li>
<li class="md-nav__item">
<a href="../xxportablesharedcache/" class="md-nav__link">
-XX:[+|-]PortableSharedCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxpositiveidentityhash/" class="md-nav__link">
-XX:[+|-]PositiveIdentityHash
</a>
</li>
<li class="md-nav__item">
<a href="../xxprintcodecache/" class="md-nav__link">
-XX:[+|-]PrintCodeCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxprintflagsfinal/" class="md-nav__link">
-XX:[+|-]PrintFlagsFinal
</a>
</li>
<li class="md-nav__item">
<a href="../xxreadipinfoforras/" class="md-nav__link">
-XX:[+|-]ReadIPInfoForRAS
</a>
</li>
<li class="md-nav__item">
<a href="../xxreducecpumonitoroverhead/" class="md-nav__link">
-XX:[+|-]ReduceCPUMonitorOverhead
</a>
</li>
<li class="md-nav__item">
<a href="../xxrequirejitserver/" class="md-nav__link">
-XX:[+|-]RequireJITServer
</a>
</li>
<li class="md-nav__item">
<a href="../xxruntimeinstrumentation/" class="md-nav__link">
-XX:[+|-]RuntimeInstrumentation
</a>
</li>
<li class="md-nav__item">
<a href="../xxsethwprefetch/" class="md-nav__link">
-XXsetHWPrefetch
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareanonymousclasses/" class="md-nav__link">
-XX:[+|-]ShareAnonymousClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" class="md-nav__link">
-XX:ShareClassesDisableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareclassesenablebci/" class="md-nav__link">
-XX:ShareClassesEnableBCI
</a>
</li>
<li class="md-nav__item">
<a href="../xxsharedcachehardlimit/" class="md-nav__link">
-XX:SharedCacheHardLimit
</a>
</li>
<li class="md-nav__item">
<a href="../xxshareunsafeclasses/" class="md-nav__link">
-XX:[+|-]ShareUnsafeClasses
</a>
</li>
<li class="md-nav__item">
<a href="../xxshowhiddenframes/" class="md-nav__link">
-XX:[+|-]ShowHiddenFrames
</a>
</li>
<li class="md-nav__item">
<a href="../xxshownativestacksymbols/" class="md-nav__link">
-XX:[+|-]ShowNativeStackSymbols
</a>
</li>
<li class="md-nav__item">
<a href="../xxstacktraceinthrowable/" class="md-nav__link">
-XX:-StackTraceInThrowable
</a>
</li>
<li class="md-nav__item">
<a href="../xxtransparenthugepage/" class="md-nav__link">
-XX:[+|-]TransparentHugePage
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecompressedoops/" class="md-nav__link">
-XX:[+|-]UseCompressedOops
</a>
</li>
<li class="md-nav__item">
<a href="../xxusecontainersupport/" class="md-nav__link">
-XX:[+|-]UseContainerSupport
</a>
</li>
<li class="md-nav__item">
<a href="../xxusegcstartuphints/" class="md-nav__link">
-XX:[+|-]UseGCStartupHints
</a>
</li>
<li class="md-nav__item">
<a href="../xxusejitserver/" class="md-nav__link">
-XX:[+|-]UseJITServer
</a>
</li>
<li class="md-nav__item">
<a href="../xxusenogc/" class="md-nav__link">
-XX:[+|-]UseNoGC
</a>
</li>
<li class="md-nav__item">
<a href="../xxutfcache/" class="md-nav__link">
-XX:[+|-]UTFCache
</a>
</li>
<li class="md-nav__item">
<a href="../xxverboseverification/" class="md-nav__link">
-XX:[+|-]VerboseVerification
</a>
</li>
<li class="md-nav__item">
<a href="../xxvmlockclassloader/" class="md-nav__link">
-XX:[+|-]VMLockClassLoader
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_17" type="checkbox" id="__nav_17" >
<label class="md-nav__link" for="__nav_17">
Reference
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label=" Reference" data-md-level="1">
<label class="md-nav__title" for="__nav_17">
<span class="md-nav__icon md-icon"></span>
Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../openj9_support/" class="md-nav__link">
Supported environments
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_defaults/" class="md-nav__link">
Default settings
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_signals/" class="md-nav__link">
Signal handling
</a>
</li>
<li class="md-nav__item">
<a href="../openj9_directories/" class="md-nav__link">
Directory conventions
</a>
</li>
<li class="md-nav__item">
<a href="../messages_intro/" class="md-nav__link">
OpenJ9 messages
</a>
</li>
<li class="md-nav__item">
<a href="../env_var/" class="md-nav__link">
Environment variables
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_18" type="checkbox" id="__nav_18" >
<label class="md-nav__link" for="__nav_18">
API documentation
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="API documentation" data-md-level="1">
<label class="md-nav__title" for="__nav_18">
<span class="md-nav__icon md-icon"></span>
API documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../api-overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_18_2" type="checkbox" id="__nav_18_2" >
<label class="md-nav__link" for="__nav_18_2">
Java 8 API
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Java 8 API" data-md-level="2">
<label class="md-nav__title" for="__nav_18_2">
<span class="md-nav__icon md-icon"></span>
Java 8 API
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../api-conditionhandling/" class="md-nav__link">
Condition exception handling
</a>
</li>
<li class="md-nav__item">
<a href="../api-cuda/" class="md-nav__link">
CUDA4J
</a>
</li>
<li class="md-nav__item">
<a href="../api-daa/" class="md-nav__link">
Data access acceleration
</a>
</li>
<li class="md-nav__item">
<a href="../api-dtfj/" class="md-nav__link">
DTFJ
</a>
</li>
<li class="md-nav__item">
<a href="../api-gpu/" class="md-nav__link">
GPU
</a>
</li>
<li class="md-nav__item">
<a href="../api-jvm/" class="md-nav__link">
JVM diagnostic utilities
</a>
</li>
<li class="md-nav__item">
<a href="../api-langmgmt/" class="md-nav__link">
Monitoring and management
</a>
</li>
<li class="md-nav__item">
<a href="../api-shrc/" class="md-nav__link">
Shared classes
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../api-jdk11/" class="md-nav__link">
Java 11 API
</a>
</li>
<li class="md-nav__item">
<a href="../api-jdk17/" class="md-nav__link">
Java 17 API
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../legal/" class="md-nav__link">
Legal
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="On this page...">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
On this page...
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#syntax" class="md-nav__link">
Syntax
</a>
</li>
<li class="md-nav__item">
<a href="#parameters" class="md-nav__link">
Parameters
</a>
<nav class="md-nav" aria-label="Parameters">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#adjustmaxaot-cache-utility" class="md-nav__link">
adjustmaxaot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustminaot-cache-utility" class="md-nav__link">
adjustminaot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustmaxjitdata-cache-utility" class="md-nav__link">
adjustmaxjitdata (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustminjitdata-cache-utility" class="md-nav__link">
adjustminjitdata (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#adjustsoftmx-cache-utility" class="md-nav__link">
adjustsoftmx (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#allowclasspaths" class="md-nav__link">
allowClasspaths
</a>
</li>
<li class="md-nav__item">
<a href="#bootclassesonly" class="md-nav__link">
bootClassesOnly
</a>
</li>
<li class="md-nav__item">
<a href="#cachedir" class="md-nav__link">
cacheDir
</a>
</li>
<li class="md-nav__item">
<a href="#cachedirperm" class="md-nav__link">
cacheDirPerm
</a>
</li>
<li class="md-nav__item">
<a href="#cacheretransformed" class="md-nav__link">
cacheRetransformed
</a>
</li>
<li class="md-nav__item">
<a href="#checkurltimestamps" class="md-nav__link">
checkURLTimestamps
</a>
</li>
<li class="md-nav__item">
<a href="#createlayer" class="md-nav__link">
createLayer
</a>
</li>
<li class="md-nav__item">
<a href="#destroy-cache-utility" class="md-nav__link">
destroy (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyall-cache-utility" class="md-nav__link">
destroyAll (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyalllayers-cache-utility" class="md-nav__link">
destroyAllLayers (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroyallsnapshots-cache-utility" class="md-nav__link">
destroyAllSnapshots (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#destroysnapshot-cache-utility" class="md-nav__link">
destroySnapshot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#disablebci" class="md-nav__link">
disableBCI
</a>
</li>
<li class="md-nav__item">
<a href="#enablebci" class="md-nav__link">
enableBCI
</a>
</li>
<li class="md-nav__item">
<a href="#expire-cache-utility" class="md-nav__link">
expire (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#fatal" class="md-nav__link">
fatal
</a>
</li>
<li class="md-nav__item">
<a href="#findaotmethods-cache-utility" class="md-nav__link">
findAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#groupaccess" class="md-nav__link">
groupAccess
</a>
</li>
<li class="md-nav__item">
<a href="#help" class="md-nav__link">
help
</a>
</li>
<li class="md-nav__item">
<a href="#invalidateaotmethods-cache-utility" class="md-nav__link">
invalidateAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#layer" class="md-nav__link">
layer
</a>
</li>
<li class="md-nav__item">
<a href="#listallcaches-cache-utility" class="md-nav__link">
listAllCaches (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#mprotect" class="md-nav__link">
mprotect
</a>
</li>
<li class="md-nav__item">
<a href="#modified" class="md-nav__link">
modified
</a>
</li>
<li class="md-nav__item">
<a href="#name" class="md-nav__link">
name
</a>
</li>
<li class="md-nav__item">
<a href="#noaot" class="md-nav__link">
noaot
</a>
</li>
<li class="md-nav__item">
<a href="#nobootclasspath" class="md-nav__link">
noBootclasspath
</a>
</li>
<li class="md-nav__item">
<a href="#notimestampchecks" class="md-nav__link">
noTimestampChecks
</a>
</li>
<li class="md-nav__item">
<a href="#nocheckurltimestamps" class="md-nav__link">
nocheckURLTimestamps
</a>
</li>
<li class="md-nav__item">
<a href="#nojitdata" class="md-nav__link">
nojitdata
</a>
</li>
<li class="md-nav__item">
<a href="#none" class="md-nav__link">
none
</a>
</li>
<li class="md-nav__item">
<a href="#nonfatal" class="md-nav__link">
nonfatal
</a>
</li>
<li class="md-nav__item">
<a href="#nonpersistent" class="md-nav__link">
nonpersistent
</a>
</li>
<li class="md-nav__item">
<a href="#nopersistentdiskspacecheck" class="md-nav__link">
noPersistentDiskSpaceCheck
</a>
</li>
<li class="md-nav__item">
<a href="#persistent" class="md-nav__link">
persistent
</a>
</li>
<li class="md-nav__item">
<a href="#printallstats-cache-utility" class="md-nav__link">
printAllStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#printstats-cache-utility" class="md-nav__link">
printStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#printtoplayerstats-cache-utility" class="md-nav__link">
printTopLayerStats (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#readonly" class="md-nav__link">
readonly
</a>
</li>
<li class="md-nav__item">
<a href="#reset" class="md-nav__link">
reset
</a>
</li>
<li class="md-nav__item">
<a href="#restorefromsnapshot-cache-utility" class="md-nav__link">
restoreFromSnapshot (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#restrictclasspaths" class="md-nav__link">
restrictClasspaths
</a>
</li>
<li class="md-nav__item">
<a href="#revalidateaotmethods-cache-utility" class="md-nav__link">
revalidateAotMethods (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#silent" class="md-nav__link">
silent
</a>
</li>
<li class="md-nav__item">
<a href="#snapshotcache-cache-utility" class="md-nav__link">
snapshotCache (Cache utility)
</a>
</li>
<li class="md-nav__item">
<a href="#utilities" class="md-nav__link">
utilities
</a>
</li>
<li class="md-nav__item">
<a href="#verbose" class="md-nav__link">
verbose
</a>
</li>
<li class="md-nav__item">
<a href="#verboseaot" class="md-nav__link">
verboseAOT
</a>
</li>
<li class="md-nav__item">
<a href="#verbosehelper" class="md-nav__link">
verboseHelper
</a>
</li>
<li class="md-nav__item">
<a href="#verboseio" class="md-nav__link">
verboseIO
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#method-specification-syntax" class="md-nav__link">
Method specification syntax
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<!--
* Copyright (c) 2017, 2022 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<h1 id="-xshareclasses">-Xshareclasses</h1>
<p>Use the <code>-Xshareclasses</code> option to enable, disable, or modify class sharing behavior. Class data sharing is enabled by default for bootstrap classes only (the equivalent of specifying <code>-Xshareclasses:bootClassesOnly,nonFatal,silent</code>), unless your application is running in a container.</p>
<p>This option can take a number of parameters, some of which are <em>cache utilities</em>. Cache utilities carry out specific operations on a specified cache without starting the Java virtual machine (VM). Although you can combine multiple suboptions, which are separated by commas, the cache utilities are mutually exclusive.</p>
<p>Some cache utilities can work with caches from previous Java&trade; versions or caches that are created by VMs with different bit-widths. These caches are referred to as <em>"incompatible"</em> caches.</p>
<p>See also the <a href="../shrc/">Class data sharing</a> topic, which includes some <a href="../shrc/#best-practices-for-using-xshareclasses">best practices for using <code>-Xshareclasses</code></a>.</p>
<h2 id="syntax">Syntax</h2>
<pre><code> -Xshareclasses:&lt;parameter&gt;
</code></pre>
<p>When you specify <code>-Xshareclasses</code> without any parameters and without specifying either the <code>-Xscmx</code> or <code>-XX:SharedCacheHardLimit</code> options, a shared classes cache is created with a default size, as follows:</p>
<ul>
<li>For 64-bit platforms, the default size is 300 MB, with a "soft" maximum limit for the initial size of the cache (<code>-Xscmx</code>) of 64MB, with the following exceptions:<ul>
<li>For a persistent cache, if the free disk space is less than 6 GB, the default size is set to 64 MB and an <code>-Xscmx</code> size is not set.</li>
<li>For a non-persistent cache on Linux&reg; or macOS&reg; systems, the cache size is limited by the maximum amount of memory that can be reserved by a process (<code>SHMMAX</code>). If <code>SHMMAX</code> is less than 300MB, the default shared cache size is set to equal <code>SHMMAX</code>. If <code>SHMMAX</code> is greater than 80 MB, <code>-Xscmx</code> is set to 64 MB. If <code>SHMMAX</code> is less than 80MB an <code>-Xscmx</code> size is not set.</li>
</ul>
</li>
<li>For other platforms, the default size is 16MB.</li>
</ul>
<h2 id="parameters">Parameters</h2>
<h3 id="adjustmaxaot-cache-utility"><code>adjustmaxaot</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:adjustmaxaot=&lt;size&gt;
</code></pre>
<dl>
<dd>Adjusts the maximum shared classes cache space that is allowed for AOT data. When you use the <code>-Xshareclasses:verbose</code> option, the VM writes to the console the number of bytes that are not stored due to the current setting of the <a href="../xscminaot/" title="When you create a shared classes cache, you can use this option to apply a maximum number of bytes in the class cache that can be used for AOT data."><code>-Xscmaxaot</code></a> option.</dd>
</dl>
<h3 id="adjustminaot-cache-utility"><code>adjustminaot</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:adjustminaot=&lt;size&gt;
</code></pre>
<dl>
<dd>Adjusts the minimum shared classes cache space that is reserved for AOT data. Use the <a href="../xscminaot/" title="When you create a shared classes cache, you can use this option to apply a minimum number of bytes in the class cache to reserve for AOT data."><code>-Xscminaot</code></a> option to set the initial minimum size.</dd>
</dl>
<h3 id="adjustmaxjitdata-cache-utility"><code>adjustmaxjitdata</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:adjustmaxjitdata=&lt;size&gt;
</code></pre>
<dl>
<dd>Adjusts the maximum shared classes cache space that is allowed for JIT data. When you use the <code>-Xshareclasses:verbose</code> option, the VM writes to the console the number of bytes that are not stored due to the current setting of the <a href="../xscminjitdata/" title="When you create a shared classes cache, you can use this option to apply a maximum number of bytes in the class cache that can be used for JIT data."><code>-Xscmaxjitdata</code></a> option.</dd>
</dl>
<h3 id="adjustminjitdata-cache-utility"><code>adjustminjitdata</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:adjustminjitdata=&lt;size&gt;
</code></pre>
<dl>
<dd>Adjusts the minimum shared classes cache space that is reserved for JIT data. Use the <a href="../xscminjitdata/" title="When you create a shared classes cache, you can use this option to apply a minimum number of bytes in the class cache to reserve for JIT data."><code>-Xscminjitdata</code></a> option to set the initial minimum size.</dd>
</dl>
<h3 id="adjustsoftmx-cache-utility"><code>adjustsoftmx</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:adjustsoftmx=&lt;size&gt;
</code></pre>
<dl>
<dd>Adjusts the soft maximum size of the cache. When you use the <code>-Xshareclasses:verbose</code> option, the VM writes to the console the number of bytes that are not stored due to the current setting of the soft maximum size. For more information about the soft maximum size, see <a href="../xscmx/" title="For a new shared classes cache, specifies either the actual size of the cache (if the -XX:SharedCacheHardLimit option is not present) or the soft maximum size of the cache (if used with the -XX:SharedCacheHardLimit option).">-Xscmx</a>.</dd>
</dl>
<h3 id="allowclasspaths"><code>allowClasspaths</code></h3>
<pre><code> -Xshareclasses:allowClasspaths
</code></pre>
<dl>
<dd>Allows a VM to store classpaths into an existing shared cache that was created by using the <code>restrictClasspaths</code> option.</dd>
</dl>
<h3 id="bootclassesonly"><code>bootClassesOnly</code></h3>
<pre><code> -Xshareclasses:bootClassesOnly
</code></pre>
<dl>
<dd>Disables caching of classes that are loaded by class loaders other than the bootstrap class loader. If you use this suboption, the <code>nonfatal</code> suboption is also set, so this suboption is the equivalent of specifying <code>-Xshareclasses:bootClassesOnly,nonfatal</code>.</dd>
</dl>
<h3 id="cachedir"><code>cacheDir</code></h3>
<pre><code> -Xshareclasses:cacheDir=&lt;directory&gt;
</code></pre>
<dl>
<dd>
<p>Sets the directory in which cache data is read and written. Please do not set the cache directory on a NFS mount or a shared mount across systems or LPARs. The following defaults apply:</p>
<ul>
<li>On Windows&trade; systems, <code>&lt;directory&gt;</code> is the user's <code>C:\Users\&lt;username&gt;\AppData\Local\javasharedresources</code> directory.</li>
<li>On z/OS&reg; systems, <code>&lt;directory&gt;</code> is the <code>/tmp/javasharedresources</code> directory.</li>
<li>On other operating systems, <code>&lt;directory&gt;</code> is <code>javasharedresources</code> in the user's home directory, unless the <code>groupAccess</code> parameter is specified, in which case it is <code>/tmp/javasharedresources</code>, because some members of the group might not have access to the user's home directory. You must have sufficient permissions in <code>&lt;directory&gt;</code>. Do not set user's home directory on a NFS or shared mount.</li>
</ul>
</dd>
<dd>
<p>On AIX&reg;, Linux, macOS, and Windows systems, the VM writes persistent cache files directly into the directory specified. Persistent cache files can be safely moved and deleted from the file system.</p>
</dd>
<dd>
<p>Non-persistent caches are stored in shared memory and have control files that describe the location of the memory. Control files are stored in a <code>javasharedresources</code> subdirectory of the <code>cacheDir</code> specified. Do not move or delete control files in this directory. The <code>listAllCaches</code> utility, the <code>destroyAll</code> utility, and the <code>expire</code> suboption work only in the scope of a given <code>cacheDir</code>.</p>
</dd>
<dd>
<p>On AIX, Linux, and macOS systems, if you specify the <code>cacheDir=&lt;directory&gt;</code> option, persistent caches are created with the following permissions (<code>-rw-r--r--</code>):</p>
<ul>
<li>User: read/write</li>
<li>Group: read (read/write if you also specify <code>-Xshareclasses:groupAccess</code>)</li>
<li>Other: read only</li>
</ul>
</dd>
<dd>
<p>Otherwise, persistent caches are created with the same permissions as non-persistent caches. The permissions for non-persistent caches are <code>-rw-r-----</code>, or <code>-rw-rw----</code> if you also specify <code>-Xshareclasses:groupAccess</code>.</p>
</dd>
<dd>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> It is good practice to set an application-specific cache directory to avoid sharing the default cache directory with the default cache, or other application caches that don't set a cache directory, and means that your application is therefore unaffected by a user running <a href="./#destroyall-cache-utility"><code>java -Xshareclasses:destroyAll</code></a>. See <a href="../shrc/#best-practices-for-using-xshareclasses">Class data sharing: Best practices for using <code>-Xshareclasses</code></a>.</p>
</dd>
</dl>
<h3 id="cachedirperm"><code>cacheDirPerm</code></h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:cacheDirPerm=&lt;permission&gt;
</code></pre>
</dd>
<dd>
<p>Sets Unix-style permissions when you are creating a cache directory. <code>&lt;permission&gt;</code> must be an octal number in the ranges 0700 - 0777 or 1700 - 1777. If <code>&lt;permission&gt;</code> is not valid, the VM ends with an appropriate error message.</p>
</dd>
<dd>
<p>The permissions that are specified by this suboption are used only when you are creating a new cache directory. If the cache directory already exists, this suboption is ignored and the cache directory permissions are not changed.</p>
</dd>
<dd>
<p>If you set this suboption to 0000, the default directory permissions are used. If you set this suboption to 1000, the machine default directory permissions are used, but the sticky bit is enabled.</p>
</dd>
<dd>
<p>If the cache directory is the platform default directory, <code>/tmp/javasharedresources</code>, this suboption is ignored and the cache directory permissions are set to 0777.</p>
</dd>
<dd>
<p>If you do not set this suboption, the default permissions are used according to the following conditions:</p>
</dd>
</dl>
<table>
<thead>
<tr>
<th>Condition</th>
<th>Permissions</th>
</tr>
</thead>
<tbody>
<tr>
<td>The cache directory is <code>/tmp/javasharedresources</code>. If this directory already exists with different permissions, the permissions are changed when the cache is opened.†</td>
<td>0777</td>
</tr>
<tr>
<td>The cache directory is a new directory and you also specify the <code>groupAcess</code> suboption</td>
<td>0770</td>
</tr>
<tr>
<td>The cache directory is a new directory and you do not specify the <code>groupAccess</code> suboption</td>
<td>0700</td>
</tr>
<tr>
<td>The cache directory already exists and is not <code>/tmp/javasharedresources</code></td>
<td>Unchanged</td>
</tr>
</tbody>
</table>
<dl>
<dd>†On z/OS&reg; systems, permissions for existing cache directories are unchanged, to avoid generating RACF&reg; errors, which generate log messages.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> It is good practice to explicitly set permissions for the cache directory when the defaults are not appropriate. See <a href="../shrc/#best-practices-for-using-xshareclasses">Class data sharing: Best practices for using <code>-Xshareclasses</code></a>.</dd>
</dl>
<h3 id="cacheretransformed"><code>cacheRetransformed</code></h3>
<pre><code> -Xshareclasses:cacheRetransformed
</code></pre>
<dl>
<dd>Enables caching of classes that are transformed by using the JVMTI <code>RetransformClasses</code> function. For more information, see <a href="../shrc/#redefined-and-retransformed-classes">Redefined and retransformed classes</a>.</dd>
</dl>
<p>The option <code>enableBCI</code> is enabled by default. However, if you use the <code>cacheRetransformed</code> option, this option forces cache creation into <code>-Xshareclasses:disableBCI</code> mode.</p>
<h3 id="checkurltimestamps"><code>checkURLTimestamps</code></h3>
<pre><code> -Xshareclasses:checkURLTimestamps
</code></pre>
<dl>
<dd>Causes timestamps of <code>jar</code> or <code>zip</code> files to be checked every time a class is loaded. If a timestamp has changed, the class is loaded from the <code>jar</code> or <code>zip</code> file and not from the shared cache. This suboption is not enabled by default and reflects the legacy behavior of the shared classes cache.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> The timestamp of a bootstrap <code>jar</code> or <code>zip</code> file is checked once when it is used for the first time to load a class.</dd>
</dl>
<h3 id="createlayer"><code>createLayer</code></h3>
<p><strong>(64-bit only)</strong></p>
<pre><code> -Xshareclasses:createLayer
</code></pre>
<dl>
<dd>Creates layered caches.</dd>
<dd>If there are multiple VMs in a race condition while creating a layered cache, more than one new layered cache can be created. To avoid this situation, use the <code>-Xshareclasses:layer=&lt;number&gt;</code> suboption to create a new layered cache with a specific layer number. See <a href="./#layer"><code>layer</code></a> for more information about layered caches.</dd>
</dl>
<h3 id="destroy-cache-utility"><code>destroy</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:destroy
</code></pre>
<dl>
<dd>Destroys a cache that is specified by the <code>name</code>, <code>cacheDir</code>, and <code>nonpersistent</code> suboptions. A cache can be destroyed only if all VMs that are using it have ended and the user has sufficient permissions.</dd>
</dl>
<h3 id="destroyall-cache-utility"><code>destroyAll</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:destroyAll
</code></pre>
<dl>
<dd>Tries to destroy all the caches that are specified by the <code>cacheDir</code> and <code>nonpersistent</code> suboptions.</dd>
<dd>On Windows and z/OS systems, a cache can be destroyed only if all VMs that are using it have shut down and the user has sufficient permissions.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> On z/OS, when the <code>destroyAll</code> option is invoked from a 31-bit VM, 64-bit caches are not destroyed. Similarly, when the <code>destroyAll</code> option is invoked from a 64-bit VM, 31-bit caches are not destroyed. The following message is displayed:<pre><code>JVMSHRC735I: Use a nn-bit VM to perform the requested operation on the
nn-bit shared cache "cachename" as the nn-bit VM
cannot verify that the shared memory was created by the VM.
</code></pre>
</dd>
<dd>
<p>On AIX, Linux, and macOS systems:</p>
</dd>
</dl>
<ul>
<li>
<p>Non-persistent caches can be destroyed only if all VMs that are using it have shut down and the user has sufficient permissions.</p>
</li>
<li>
<p>Persistent caches that are still in use continue to exist even when you use this option, but they are unlinked from the file system so they are not visible to new VM invocations. If you update the VM then restart an application for which a persistent shared cache already exists, the VM unlinks the existing cache and creates a new cache. Because the unlinked caches are not visible to new VMs, you cannot find them by using the <code>-Xshareclasses:listAllCaches</code> option, and you cannot use the <code>-Xshareclasses:printStats</code> option on them. You can therefore have multiple unlinked caches that consume file system space until they are no longer in use.</p>
</li>
</ul>
<h3 id="destroyalllayers-cache-utility"><code>destroyAllLayers</code> (Cache utility)</h3>
<p><strong>(64-bit only)</strong></p>
<pre><code> -Xshareclasses:destroyAllLayers
</code></pre>
<dl>
<dd>Destroys all shared cache layers that are specified by the <code>name</code> suboption. For example, <code>-Xshareclasses:name=Cache1,destroyAllLayers</code> destroys all layers of the cache called <code>Cache1</code>. If you use the <code>destroy</code> suboption on a layered cache, for example <code>-Xshareclasses:name=Cache1,destroy</code>, only the top layer of the cache is destroyed.</dd>
<dd>For more information about layered caches, see <a href="../shrc/#creating-layer-caches">Creating layer caches</a>.</dd>
</dl>
<h3 id="destroyallsnapshots-cache-utility"><code>destroyAllSnapshots</code> (Cache utility)</h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:destroyAllSnapshots
</code></pre>
</dd>
<dd>
<p>Destroys all shared cache snapshots that are available as a result of the specified <code>cacheDir</code> suboption.</p>
</dd>
</dl>
<h3 id="destroysnapshot-cache-utility"><code>destroySnapshot</code> (Cache utility)</h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:destroySnapshot
</code></pre>
</dd>
<dd>
<p>Destroys a snapshot that is specified by the <code>name</code> and <code>cacheDir</code> suboptions.</p>
</dd>
</dl>
<h3 id="disablebci"><code>disableBCI</code></h3>
<pre><code> -Xshareclasses:disableBCI
</code></pre>
<dl>
<dd>Turns off BCI support. This option can be used to override <a href="../xxshareclassesenablebci/"><code>-XXShareClassesEnableBCI</code></a>.</dd>
</dl>
<h3 id="enablebci"><code>enableBCI</code></h3>
<pre><code> -Xshareclasses:enableBCI
</code></pre>
<dl>
<dd>This option is enabled by default.</dd>
<dd>Allows a JVMTI <code>ClassFileLoadHook</code> event to be triggered every time, for classes that are loaded from the cache. This mode also prevents caching of classes that are modified by JVMTI agents. For more information about bytecode modification, see <a href="../shrc/#support-for-bytecode-instrumentation">Support for bytecode instrumentation</a>. This option is incompatible with the <a href="#cacheretransformed"><code>cacheRetransformed</code></a> option. Using the two options together causes the VM to end with an error message, unless <a href="#nonfatal"><code>-Xshareclasses:nonfatal</code></a> is specified. In this
case, the VM continues without using shared classes.</dd>
<dd>A cache that is created without the <code>enableBCI</code> suboption cannot be reused with the <code>enableBCI</code> suboption. Attempting to do so causes the VM to end with an error message, unless <a href="#nonfatal"><code>-Xshareclasses:nonfatal</code></a> is specified. In this case, the VM continues without using shared classes. A cache that is created with the <code>enableBCI</code> suboption can be reused without specifying this suboption. In this case, the VM detects that the cache was created with the <code>enableBCI</code> suboption and uses the cache in this mode.</dd>
</dl>
<h3 id="expire-cache-utility"><code>expire</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:expire=&lt;time_in_minutes&gt;
</code></pre>
<dl>
<dd>Destroys all caches that are unused for the time that is specified before loading shared classes. This option is not a utility option because it does not cause the VM to exit. On Windows systems, which have NTFS file systems, the <code>expire</code> option is accurate to the nearest hour.</dd>
</dl>
<h3 id="fatal"><code>fatal</code></h3>
<pre><code> -Xshareclasses:fatal
</code></pre>
<dl>
<dd>The VM does not start if class data sharing fails, for example because there was an error when accessing the cache directory. An error message is generated. This suboption is specified by default unless you use the <code>bootClassesOnly</code> suboption, which is equivalent to <code>-Xshareclasses:bootClassesOnly,nonfatal</code>. You can override this behavior by specifying <code>-Xshareclasses:bootClassesOnly,fatal</code>. See also <a href="#nonfatal"><code>nonfatal</code></a>.</dd>
</dl>
<h3 id="findaotmethods-cache-utility"><code>findAotMethods</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:findAotMethods=&lt;method_specification&gt;
-Xshareclasses:findAotMethods=help
</code></pre>
<dl>
<dd>Print the AOT methods in the shared classes cache that match the method specifications. Methods that are already invalidated are indicated in the output. Use this suboption to check which AOT methods in the shared classes cache would be invalidated by using the same method specifications with the <code>invalidateAotMethods</code> suboption. To learn more about the syntax to use for <code>&lt;method_specification&gt;</code>, including how to specify more than one method, see <a href="#method-specification-syntax">Method specification syntax</a>.</dd>
</dl>
<h3 id="groupaccess"><code>groupAccess</code></h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:groupAccess
</code></pre>
</dd>
<dd>
<p>Sets operating system permissions on a new cache to allow group access to the cache. Group access can be set only when permitted by the operating system <code>umask</code> setting. The default is user access only.</p>
</dd>
<dd>
<p>On AIX, Linux, and macOS systems, if a user creates a cache by specifying the <code>groupAccess</code> suboption, other users in the same group must also specify this suboption to be granted access to the same cache.</p>
</dd>
<dd>
<p>When <code>groupAccess</code> is specified, the default directory for a cache is <code>/tmp/javasharedresources</code>. Some systems might clear the content of the <code>/tmp</code> directory on a reboot, removing the shared cache. To avoid that problem, you are therefore recommended to use <a href="#cachedir"><code>cacheDir</code></a> to set a different location for the cache. If necessary, use <a href="#cachedirperm"><code>cacheDirPerm</code></a> to ensure that the cache directory permissions are set appropriately.</p>
</dd>
<dd>
<p>In certain situations, warning messages might be generated when the <code>groupAccess</code> suboption is used.</p>
</dd>
<dd>
<p>This message can occur when persistent caches are used:</p>
<pre><code>JVMSHRC756W Failed to set group access permission on the shared cache
file as requested by the 'groupAccess' sub-option
</code></pre>
</dd>
<dd>
<p>These messages can occur when non-persistent caches are used:</p>
<pre><code>JVMSHRC759W Failed to set group access permission as requested by the
'groupAccess' sub-option on the semaphore control file associated
with shared classes cache.
JVMSHRC760W Failed to set group access permission as requested by the
'groupAccess' sub-option on the shared memory control file associated
with shared classes cache.
</code></pre>
</dd>
<dd>
<p>This message can occur in combination with the <code>snapshotCache</code> suboption:</p>
<pre><code>JVMSHRC761W Failed to set group access permission as requested by the
'groupAccess' sub-option on the shared cache snapshot file.
</code></pre>
</dd>
<dd>
<p>All of these warning messages mean that the user's <strong>umask</strong> setting does not allow either, or both, of the group <code>read</code> and <code>write</code> permission to be set on the file. The typical umask setting restricts only the <code>write</code> permission. To resolve the warning, either change the <strong>umask</strong> setting or remove the <code>groupAccess</code> suboption.</p>
</dd>
</dl>
<h3 id="help"><code>help</code></h3>
<pre><code> -Xshareclasses:help
</code></pre>
<dl>
<dd>Lists all the command-line options.</dd>
</dl>
<h3 id="invalidateaotmethods-cache-utility"><code>invalidateAotMethods</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:invalidateAotMethods=&lt;method_specification&gt;
-Xshareclasses:invalidateAotMethods=help
</code></pre>
<dl>
<dd>Modify the existing shared cache to invalidate the AOT methods that match the method specifications. Use this suboption to invalidate AOT methods that cause a failure in the application, without having to destroy the shared cache. Invalidated AOT methods remain in the shared cache, but are then excluded from being loaded. VMs that have not processed the methods, or new VMs that use the cache are not affected by the invalidated methods. The AOT methods are invalidated for the lifetime of the cache, but do not prevent the AOT methods from being compiled again if a new shared cache is created. To prevent AOT method compilation into a new shared cache, use the <code>-Xaot:exclude</code> option. For more information, see <a href="../xaot/#exclude">-Xaot</a>.</dd>
<dd>To identify AOT problems, see <a href="https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.vm.80.doc/docs/jit_pd_diagnose.html">Diagnosing a JIT or AOT problem</a>.</dd>
<dd>To revalidate an AOT method, see the <code>revalidateAotMethods</code> suboption. Use the <code>findAotMethod</code> suboption to determine which AOT methods match the method specifications. To learn more about the syntax to use for <code>&lt;method_specification&gt;</code>, including how to specify more than one method, see <a href="#method-specification-syntax">Method specification syntax</a>.</dd>
</dl>
<h3 id="layer"><code>layer</code></h3>
<p>(64-bit only)</p>
<pre><code> -Xshareclasses:layer=&lt;number&gt;
</code></pre>
<dl>
<dd>Creates layered caches.</dd>
<dd>This suboption has the same effect as the <a href="./#createlayer"><code>createLayer</code></a> suboption, but with the added ability to specify the layer number.</dd>
<dd>For more information about creating a shared classes cache with layers, see <a href="../shrc/#creating-layer-caches">Creating layer caches</a>.</dd>
</dl>
<h3 id="listallcaches-cache-utility"><code>listAllCaches</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:listAllCaches
</code></pre>
<dl>
<dd>Lists all the compatible and incompatible caches, and snapshots that exist in the specified cache directory. If you do not specify <code>cacheDir</code>, the default directory is used.</dd>
<dd>Summary information, such as Java version and current usage, is displayed for each cache. Output includes <code>cache-type</code> (persistent or non-persistent) and <code>feature</code> (compressed references (<code>cr</code>) or non-compressed references (<code>non-cr</code>)).</dd>
</dl>
<h3 id="mprotect"><code>mprotect</code></h3>
<dl>
<dd>AIX, z/OS 31-bit:<pre><code>-Xshareclasses:mprotect=[default|all|none]
</code></pre>
</dd>
<dd>
<p>Linux, Windows, macOS:</p>
<pre><code>-Xshareclasses:mprotect=[default|all|partialpagesonstartup|onfind|nopartialpages|none]
</code></pre>
</dd>
<dd>
<p>where:</p>
<ul>
<li><code>default</code>: By default, the memory pages that contain the cache are always protected, unless a specific page is being updated. This protection helps prevent accidental or deliberate corruption to the cache. The cache header is not protected by default because this protection has a performance cost. On Linux, macOS, and Windows systems, after the startup phase, the Java virtual machine (VM) protects partially filled pages whenever new data is added to the shared classes cache in the following sequence:<ul>
<li>The VM changes the memory protection of any partially filled pages to read/write.</li>
<li>The VM adds the data to the cache.</li>
<li>The VM changes the memory protection of any partially filled pages to read only.</li>
</ul>
</li>
<li><code>all</code>: This value ensures that all the cache pages are protected, including the header. See Note.</li>
<li><code>partialpagesonstartup</code>: This value causes the VM to protect partially filled pages during startup as well as after the startup phase. This value is available only on Linux, macOS, and Windows systems.</li>
<li><code>onfind</code>: When this option is specified, the VM protects partially filled pages when it reads new data in the cache that is added by another VM. This option is available only on Linux, macOS, and Windows systems.</li>
<li><code>nopartialpages</code>: Use this value to turn off the protection of partially filled pages. This value is available only on Linux, macOS, and Windows systems.</li>
<li><code>none</code>: Specifying this value disables the page protection.</li>
</ul>
</dd>
<dd>
<p><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> Specifying <code>all</code> has a negative impact on performance. You should specify <code>all</code> only for problem diagnosis and not for production. Specifying values <code>partialpagesonstartup</code> or <code>onfind</code> can also have a negative impact on performance when the cache is being populated. There is no further impact when the cache is full or no longer being modified.</p>
</dd>
</dl>
<h3 id="modified"><code>modified</code></h3>
<pre><code> -Xshareclasses:modified=&lt;modified_context&gt;
</code></pre>
<dl>
<dd>Used when a JVMTI agent is installed that might modify bytecode at run time. If you do not specify this suboption and a bytecode modification agent is installed, classes are safely shared with an extra performance cost. The <code>&lt;modified context&gt;</code> is a descriptor that is chosen by the user; for example, <em>myModification1</em>. This option partitions the cache so that only VMs that are using context <em>myModification1</em> can share the same classes. So if, for example, you run an application with a modification context and then run it again with a different modification context, all classes are stored twice in the cache.</dd>
<dd>For more information, see <a href="../shrc/#sharing-modified-bytecode">Sharing modified bytecode</a>.</dd>
<dd>If you are migrating from IBM&reg; SDK, Java Technology Edition, Version 7, or earlier releases, you must set <a href="#disablebci"><code>-Xshareclasses:disableBCI</code></a> when you use this option to retain the same behavior.</dd>
</dl>
<h3 id="name"><code>name</code></h3>
<pre><code> -Xshareclasses:name=&lt;name&gt;
</code></pre>
<dl>
<dd>Connects to a cache of a given name, creating the cache if it does not exist. This option is also used to indicate the cache that is to be modified by cache utilities; for example, <code>destroy</code>. Use the <code>listAllCaches</code> utility to show which named caches are currently available. If you do not specify a name, the default name <em>"sharedcc_%u"</em> is used. "%u" in the cache name inserts the current user name. On operating systems other than Windows, you can specify <em>"%g"</em> in the cache name to insert the current group name.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> It is good practice to explicitly specify a cache for your application. This avoids the application sharing a cache that is enabled by default or with another application that doesn't set a name, and ensures that the size of your application cache can be set appropriately and that cache space is used exclusively for your application. Note that you cannot change the size of a default cache that already exists by using the <a href="../xscmx/"><code>-Xscmx</code></a> option, as that option has no effect on a pre-existing cache. See <a href="../shrc/#best-practices-for-using-xshareclasses">Class data sharing: Best practices for using <code>-Xshareclasses</code></a>.</dd>
</dl>
<h3 id="noaot"><code>noaot</code></h3>
<pre><code> -Xshareclasses:noaot
</code></pre>
<dl>
<dd>Disables caching and loading of AOT code. AOT code already in the shared data cache can be loaded.</dd>
</dl>
<h3 id="nobootclasspath"><code>noBootclasspath</code></h3>
<pre><code> -Xshareclasses:noBootclasspath
</code></pre>
<dl>
<dd>Disables the storage of classes that are loaded by the bootstrap class loader in the shared classes cache. Often used with the <code>SharedClassURLFilter</code> API to control exactly which classes are cached. For more information about shared class filtering, see <a href="../shrc/#the-java-shared-classes-helper-api">The Java shared classes Helper API</a>.</dd>
</dl>
<h3 id="notimestampchecks"><code>noTimestampChecks</code></h3>
<pre><code> -Xshareclasses:noTimestampChecks
</code></pre>
<dl>
<dd>Turns off timestamp checking when finding classes in the shared cache. Use this option only when you know there are no updates to the classes from the class paths or module paths in your application. Otherwise, obsolete classes might be loaded from the shared cache. If this happens, remove the <code>noTimestampChecks</code> option.</dd>
</dl>
<h3 id="nocheckurltimestamps"><code>nocheckURLTimestamps</code></h3>
<pre><code> -Xshareclasses:nocheckURLTimestamps
</code></pre>
<dl>
<dd>Timestamps of <code>jar</code> or <code>zip</code> files are checked only when they are added to a class loader and used for the first time to look up a class. This is the default
behavior, which can improve the performance of class loading from the shared classes cache, especially on Windows systems. To revert to the behavior of the shared classes cache in earlier releases, use the <a href="./#checkurltimestamps"><code>CheckURLTimeStamps</code></a> suboption.</dd>
<dd><span aria-hidden="true" class="twemoji warn"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346 7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></svg></span> <strong>Restriction:</strong> When the <code>nocheckURLTimestamps</code> suboption is used (default), if <code>jar</code> or <code>zip</code> files are updated after a class loader starts loading classes from them, an older version of the class might be loaded from the shared classes cache. If this scenario occurs, use the <code>checkURLTimestamps</code> option.</dd>
</dl>
<h3 id="nojitdata"><code>nojitdata</code></h3>
<pre><code> -Xshareclasses:nojitdata
</code></pre>
<dl>
<dd>Disables caching of JIT data. JIT data already in the shared data cache can be loaded.</dd>
</dl>
<h3 id="none"><code>none</code></h3>
<pre><code> -Xshareclasses:none
</code></pre>
<dl>
<dd>Added to the end of a command line, disables class data sharing. This suboption overrides class sharing arguments found earlier on the command line. This suboption disables the shared class utility APIs. To disable class data sharing without disabling the utility APIs, use the <code>utilities</code> suboption. For more information about the shared class utility APIs, see <a href="../shrc/#the-java-shared-classes-utility-api">The Java shared classes utility API</a>.</dd>
</dl>
<h3 id="nonfatal"><code>nonfatal</code></h3>
<pre><code> -Xshareclasses:nonfatal
</code></pre>
<dl>
<dd>Allows the VM to start, in most cases, even if class data sharing fails. Normal behavior for the VM is to refuse to start if class data sharing fails. If you select <code>nonfatal</code> and the shared classes cache fails to initialize, the VM attempts to connect to the cache in read-only mode. If this attempt fails, the VM starts without class data sharing. See also <a href="#fatal"><code>fatal</code></a>.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> Unless it is important that your application runs with class data sharing, it is good practice to set this parameter. See <a href="../shrc/#creating-a-shared-classes-cache">Creating a shared classes cache</a>. However, cache corruption as a result of a bug in the operating system, VM, or user code might not be detected when opening the cache. In this situation, the cache is used and the application might crash.</dd>
</dl>
<h3 id="nonpersistent"><code>nonpersistent</code></h3>
<pre><code> -Xshareclasses:nonpersistent
</code></pre>
<dl>
<dd>Uses a non-persistent cache. The cache is lost when the operating system shuts down. Non-persistent and persistent caches can have the same name. On Linux, macOS, and Windows systems, you must always use the <code>nonpersistent</code> suboption when you run utilities such as <code>destroy</code> on a non-persistent cache. z/OS supports only non-persistent caches.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> On macOS systems, you must set <code>kern.sysv.shmmax</code> and <code>kern.sysv.shmall</code> when using a non-persistent cache.</dd>
</dl>
<h3 id="nopersistentdiskspacecheck"><code>noPersistentDiskSpaceCheck</code></h3>
<pre><code> -Xshareclasses:noPersistentDiskSpaceCheck
</code></pre>
<dl>
<dd>Instructs the VM not to check for available storage on the file system before creating a persistent shared classes cache. This option prevents an error on file systems that do not support the checking of free space, where a value of 0 is returned and a shared cache cannot be created. Regardless of whether you choose to set this option, if there isn't enough disk space available when the VM writes to the shared cache memory, a <strong>SIGBUS</strong> or <strong>SIGSEGV</strong> signal occurs and the VM ends.</dd>
<dd>If you are using the <a href="#readonly"><code>readonly</code></a> suboption, the VM does not check the available disk space, so you do not need to set the <code>noPersistentDiskSpaceCheck</code> suboption.</dd>
</dl>
<h3 id="persistent"><code>persistent</code></h3>
<pre><code> -Xshareclasses:persistent
</code></pre>
<dl>
<dd>Uses a persistent cache. The cache is created on disk, which persists beyond operating system restarts. Non-persistent and persistent caches can have the same name. On AIX, you must always use the <code>persistent</code> suboption when you run utilities such as <code>destroy</code> on a persistent cache.</dd>
<dd><span aria-hidden="true" class="twemoji note"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="m497.9 142.1-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8 21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg></span> <strong>Note:</strong> Persisent caches are not supported on z/OS systems. z/OS supports only non-persistent caches.</dd>
</dl>
<h3 id="printallstats-cache-utility"><code>printAllStats</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:printAllStats
</code></pre>
<dl>
<dd>Displays detailed information about the contents of the cache that is specified in the <a href="#name"><code>name</code></a> suboption. If the name is not specified, statistics are displayed about the default cache. For layered caches, information is shown for all layers (to see information for the top layer cache only, use <a href="#printtoplayerstats-cache-utility"><code>printTopLayerStats=all</code></a>). Every class is listed in chronological order with a reference to the location from which it was loaded. For more information, see <a href="../shrc_diag_util/#shared-classes-cache-diagnostic-utilities">Shared classes cache diagnostic utilities</a>.</dd>
</dl>
<h3 id="printstats-cache-utility"><code>printStats</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:printStats=&lt;data_type&gt;[+&lt;data_type&gt;]
</code></pre>
<dl>
<dd>Displays summary information for the cache that is specified by the <a href="#name"><code>name</code></a>, <a href="#cachedir"><code>cacheDir</code></a>, and <a href="#nonpersistent"><code>nonpersistent</code></a> suboptions. For layered caches, information is shown for all layers (to see information for the top layer cache only, use <a href="#printtoplayerstats-cache-utility"><code>printTopLayerStats</code></a>). The most useful information that is displayed is how full the cache is and how many classes it contains. Stale classes are classes that are updated on the file system and which the cache has therefore marked as "stale". Stale classes are not purged from the cache and can be reused. Use the <code>printStats=stale</code> option to list all the stale entries and stale bytes.</dd>
<dd>Specify one or more data types, which are separated by a plus symbol (+), to see more detailed information about the cache content. Data types include AOT data, class paths, and ROMMethods.</dd>
<dd>For more information and for a full list of data types, see <a href="../shrc_diag_util/#shared-classes-cache-diagnostic-utilities">Shared classes cache diagnostic utilities</a>.</dd>
</dl>
<h3 id="printtoplayerstats-cache-utility"><code>printTopLayerStats</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:printTopLayerStats=&lt;data_type&gt;[+&lt;data_type&gt;]
</code></pre>
<dl>
<dd>Equivalent to <a href="#printstats-cache-utility"><code>printStats</code></a> but for the top layer cache only. For more information about layered caches, see <a href="../shrc/#creating-layer-caches">Creating a layer cache</a>.</dd>
</dl>
<h3 id="readonly"><code>readonly</code></h3>
<pre><code> -Xshareclasses:readonly
</code></pre>
<dl>
<dd>By default, a shared classes cache is created with read/write access. Use the <code>readonly</code> suboption to open an existing cache with read-only permissions. Opening a cache read-only prevents the VM from making any updates to the cache. If you specify this suboption, the VM can connect to caches that were created by other users or groups without requiring write access.</dd>
<dd>On AIX, Linux, and macOS systems, this access is permitted only if the cache was created by using the <a href="#cachedir"><code>-Xshareclasses:cacheDir</code></a> option to specify a directory with appropriate permissions. If you do not use the <code>-Xshareclasses:cacheDir</code> option, the cache is created with default permissions, which do not permit access by other users or groups.</dd>
<dd>By default, this suboption is not specified.</dd>
</dl>
<h3 id="reset"><code>reset</code></h3>
<pre><code> -Xshareclasses:reset
</code></pre>
<dl>
<dd>Causes a cache to be destroyed and then re-created when the VM starts up. This option can be added to the end of a command line as <code>-Xshareclasses:reset</code>.</dd>
</dl>
<h3 id="restorefromsnapshot-cache-utility"><code>restoreFromSnapshot</code> (Cache utility)</h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:restoreFromSnapshot
</code></pre>
</dd>
<dd>
<p>Restores a new non-persistent shared cache from a snapshot file. The snapshot and shared cache have the same name and location, as specified by the <a href="#name"><code>name</code></a> and <a href="#cachedir"><code>cacheDir</code></a> suboptions. The non-persistent cache cannot already exist when the snapshot is restored. Restoring a snapshot does not remove the snapshot file; it can be restored multiple times. On platforms that support persistent caches, the <a href="#nonpersistent"><code>nonpersistent</code></a> suboption must be specified in order to restore a snapshot.</p>
</dd>
</dl>
<h3 id="restrictclasspaths"><code>restrictClasspaths</code></h3>
<pre><code> -Xshareclasses:restrictClasspaths
</code></pre>
<dl>
<dd>Allows only the first VM that is initializing a shared cache to store classpaths in the cache. Subsequent VMs are not allowed to store classpaths in the cache unless the <code>allowClasspaths</code> option is specified.</dd>
<dd>Use the <code>restrictClasspaths</code> option only if the application is designed to create class loaders of type <code>java.net.URLClassloader</code> or its subclass, such that their classpaths are unique to the instance of the application, but the classes that are loaded from these classpaths are the same. In such cases application classpaths that are stored by one VM cannot be used by another VM.</dd>
<dd>
<p>For example, consider two VMs, VM1 and VM2, that are using class paths CP1 and CP2 respectively, where:</p>
<ul>
<li>CP1: <code>url1;url2;url3;tempurl1;url4;url5</code></li>
<li>CP2: <code>url1;url2;url3;tempurl2;url4;url5</code></li>
</ul>
</dd>
<dd>
<p>These class paths differ only by one entry, which is the <code>tempurl</code>. The <code>url1</code>, <code>url2</code>, <code>url3</code>, <code>url4</code>, and <code>url5</code> entries never change from run to run, whereas the <code>tempurl</code> entry is always different. This difference means that a class that is loaded from <code>url4</code> or <code>url5</code>, and stored into the shared cache by VM1, cannot be located by VM2. Therefore, an attempt by VM2 to load a class from <code>url4</code> or <code>url5</code> would cause it to store its own classpath <code>CP2</code> into the shared cache, and also add new metadata for classes that are loaded from <code>url4</code> or <code>url5</code>. Addition of such unique class paths into the shared cache is not useful. Moreover, the additional metadata might adversely affect the performance of other VMs that connect to the shared cache. Because classes loaded from <code>url4</code> or <code>url5</code> are not loaded from the shared cache when the <code>tempurl</code> differs from the original, it is good practice to put the <code>tempurl</code> as the last entry in the class path.</p>
</dd>
<dd>
<p>In situations such as that described in the example, the <code>restrictClasspaths</code> option can be used to restrict the addition of classpaths by ensuring that the first VM initializes the shared cache, and then prevents the addition of unique classpaths by subsequent VMs that attach to the shared cache. Note that use of the <code>restrictClasspaths</code> option in any other scenario is likely to negatively impact a VM's performance when it is using an existing cache.</p>
</dd>
</dl>
<h3 id="revalidateaotmethods-cache-utility"><code>revalidateAotMethods</code> (Cache utility)</h3>
<pre><code> -Xshareclasses:revalidateAotMethods=&lt;method_specification&gt;
-Xshareclasses:revalidateAotMethods=help
</code></pre>
<dl>
<dd>Modify the shared cache to revalidate the AOT methods that match the method specifications. Use this suboption to revalidate AOT methods that were invalidated by using the <a href="#invalidateaotmethods-cache-utility"><code>invalidateAotMethods</code></a> suboption. Revalidated AOT methods are then eligible for loading into a VM, but do not affect VMs where the methods have already been processed. To learn more about the syntax to use for <code>&lt;method_specification&gt;</code>, including how to specify more than one method, see <a href="#method-specification-syntax">Method specification syntax</a>.</dd>
</dl>
<h3 id="silent"><code>silent</code></h3>
<pre><code> -Xshareclasses:silent
</code></pre>
<dl>
<dd>Disables all shared class messages, including error messages. Unrecoverable error messages, which prevent the VM from initializing, are displayed.</dd>
</dl>
<h3 id="snapshotcache-cache-utility"><code>snapshotCache</code> (Cache utility)</h3>
<dl>
<dd><strong>(Not Windows)</strong><pre><code>-Xshareclasses:snapshotCache
</code></pre>
</dd>
<dd>
<p>Creates a snapshot file of an existing non-persistent shared cache. The snapshot has the same name and location as the shared cache, as specified by the <a href="#name"><code>name</code></a> and <a href="#cachedir"><code>cacheDir</code></a> suboptions. The shared cache can be in use when the snapshot is taken, but VMs are blocked when they try to write to the shared cache, while the cache data is copied to the file.</p>
</dd>
<dd>
<p>Typically, after a system is reinitialized, the snapshot file is used to restore the copy of the non-persistent cache into shared memory, via the <a href="#restorefromsnapshot-cache-utility"><code>restoreFromSnapshot</code></a> suboption. Since this process removes all non-persistent caches from shared memory, restoring the cache from the snapshot file can result in better VM startup performance, because the contents of the shared cache, including classes and AOT code, do not have to be re-created.</p>
</dd>
<dd>
<p>A snapshot can be created only if the user has sufficient permissions to create the destination snapshot file. If a snapshot of the same name exists already, it is overwritten. On platforms that support persistent caches, the <a href="#nonpersistent"><code>nonpersistent</code></a> suboption must be specified in order to create a snapshot. For information about removing snapshot files, see the <a href="#destroysnapshot-cache-utility"><code>destroySnapshot</code></a> and <a href="#destroyallsnapshots-cache-utility"><code>destroyAllSnapshots</code></a> suboptions.</p>
</dd>
</dl>
<h3 id="utilities"><code>utilities</code></h3>
<pre><code> -Xshareclasses:utilities
</code></pre>
<dl>
<dd>Can be added to the end of a command line to disable class data sharing. This suboption overrides class sharing arguments found earlier on the command line. This suboption is like <a href="#none"><code>none</code></a>, but does not disable the shared class utility APIs. For more information, see <a href="../shrc/#the-java-shared-classes-utility-api">The Java shared classes utility API</a>.</dd>
</dl>
<h3 id="verbose"><code>verbose</code></h3>
<pre><code> -Xshareclasses:verbose
</code></pre>
<dl>
<dd>Gives detailed output on the cache I/O activity, listing information about classes that are stored and found. Each class loader is given a unique ID (the bootstrap loader is always 0) and the output shows the class loader hierarchy at work, where class loaders ask their parents for a class if they can't find it themselves. It is typical to see many failed requests; this behavior is expected for the class loader hierarchy. The standard option <code>-verbose:class</code> also enables class sharing verbose output if class sharing is enabled.</dd>
</dl>
<h3 id="verboseaot"><code>verboseAOT</code></h3>
<pre><code> -Xshareclasses:verboseAOT
</code></pre>
<dl>
<dd>Enables verbose output when compiled AOT code is being found or stored in the cache. AOT code is generated heuristically. You might not see any AOT code that is generated at all for a small application. You can disable AOT caching by using the <code>noaot</code> suboption. See the <a href="https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.messages/diag/appendixes/messages/messages.html">VM Messages Guide</a> for a list of the messages produced.</dd>
</dl>
<h3 id="verbosehelper"><code>verboseHelper</code></h3>
<pre><code> -Xshareclasses:verboseHelper
</code></pre>
<dl>
<dd>Enables verbose output for the Java Helper API. This output shows you how the Helper API is used by your class loader.</dd>
</dl>
<h3 id="verboseio"><code>verboseIO</code></h3>
<pre><code> -Xshareclasses:verboseIO
</code></pre>
<dl>
<dd>Gives detailed output on the cache I/O activity, listing information about classes that are stored and found. Each class loader is given a unique ID (the bootstrap loader is always 0) and the output shows the class loader hierarchy at work, where class loaders must ask their parents for a class before they can load it themselves. It is typical to see many failed requests; this behavior is expected for the class loader hierarchy.</dd>
</dl>
<h2 id="method-specification-syntax">Method specification syntax</h2>
<p>The following examples show how to specify more than one method specification when you are using the <a href="#findaotmethods-cache-utility"><code>findAotMethods</code></a>, <a href="#invalidateaotmethods-cache-utility"><code>invalidateAotMethods</code></a>, or <a href="#revalidateaotmethods-cache-utility"><code>revalidateAotMethods</code></a> suboptions.</p>
<p>Each method specification is defined as follows:</p>
<pre><code>&lt;packagename&gt;/&lt;classname&gt;[.&lt;methodname&gt;[(&lt;parameters&gt;)]]
</code></pre>
<p>If you want to include more than one method specification in a single option, separate the specifications with a comma and enclose all the specifications in {braces}. For example:</p>
<pre><code>{&lt;packagename/classname&gt;}[.{&lt;methodname&gt;}[({&lt;parameters&gt;})]]
</code></pre>
<!--
{<method_specification1>,<method_specification2>,<method_specification3>}
-->
<ul>
<li>You can use an asterisk (*) in most places as a wildcard.</li>
<li>You can use an exclamation point (!) before the specification to mean "everything <em>except</em> this".</li>
<li>Parameters are optional, but if specified, should be enclosed in parentheses and the following native signature formats must be used:<ul>
<li><code>B</code> for byte</li>
<li><code>C</code> for char</li>
<li><code>D</code> for double</li>
<li><code>F</code> for float</li>
<li><code>I</code> for int</li>
<li><code>J</code> for long</li>
<li><code>S</code> for short</li>
<li><code>Z</code> for Boolean</li>
<li><code>L&lt;classname&gt;;</code> for objects</li>
<li><code>[</code> before the signature means array</li>
</ul>
</li>
</ul>
<p>If you want to specify parameters to distinguish between methods, you can use <a href="#findaotmethods-cache-utility"><code>-Xshareclasses:findAotMethods=*</code></a> (with a wildcard) to list all the parameter variations. Copy the signature for the method that you want from the output. For example, the signature for the parameters</p>
<pre><code>(byte[] bytes, int offset, int length, Charset charset)
</code></pre>
<p>is</p>
<pre><code>([BIILjava/nio/charset/Charset;)
</code></pre>
<p>Here are some examples:</p>
<table>
<thead>
<tr>
<th>Method signature</th>
<th>Matches...</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>*</code></td>
<td>All AOT methods.</td>
</tr>
<tr>
<td><code>java/lang/Object</code></td>
<td>All AOT methods in the <code>java.lang.Object</code> class</td>
</tr>
<tr>
<td><code>java/util/*</code></td>
<td>All AOT classes and methods in the <code>java.util</code> package</td>
</tr>
<tr>
<td><code>java/util/HashMap.putVal</code></td>
<td>All <code>putVal</code> methods in the <code>java.util.HashMap</code> class</td>
</tr>
<tr>
<td><code>java/util/HashMap.hash(Ljava/lang/Object;)</code></td>
<td>The private <code>java.util.HashMap.hash(java.lang.Object)</code> method</td>
</tr>
<tr>
<td><code>*.equals</code></td>
<td>All <code>equals</code> methods in all classes</td>
</tr>
<tr>
<td><code>{java/lang/Object,!java/lang/Object.clone}</code></td>
<td>All methods in <code>java.lang.Object</code> except <code>clone</code></td>
</tr>
<tr>
<td><code>{java/util/*.*(),java/lang/Object.*(*)}</code></td>
<td>All classes or methods with no input parameter in the <code>java.util</code> package, and all methods in <code>java.lang.Object</code></td>
</tr>
<tr>
<td><code>{java/util/*.*(),!java/util/*.*()}</code></td>
<td>Nothing.</td>
</tr>
</tbody>
</table>
<ul>
<li><a href="../shrc/">Introduction to class data sharing</a></li>
<li><a href="../xscmx/">-Xscmx</a></li>
<li><a href="../xxsharedcachehardlimit/">-XX:SharedCacheHardLimit</a></li>
</ul>
<!-- ==== END OF TOPIC ==== docs/xshareclasses.md ==== -->
</article>
</div>
</div>
</main>
<!--
* Copyright (c) 2017, 2022 IBM Corp. and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution and is available at
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
* License, Version 2.0 which accompanies this distribution and
* is available at https://www.apache.org/licenses/LICENSE-2.0.
*
* This Source Code may also be made available under the
* following Secondary Licenses when the conditions for such
* availability set forth in the Eclipse Public License, v. 2.0
* are satisfied: GNU General Public License, version 2 with
* the GNU Classpath Exception [1] and GNU General Public
* License, version 2 with the OpenJDK Assembly Exception [2].
*
* [1] https://www.gnu.org/software/classpath/license.html
* [2] http://openjdk.java.net/legal/assembly-exception.html
*
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH
* Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
-->
<footer class="md-footer">
<div class="md-footer-meta">
<!-- Add following links ...................................... -->
<div class="above-line">
<div class="above-line-links">
<div class="column">
<h3 >Docs</h3>
<span class="footer-link"><a href="/openj9/docs/openj9_newuser/" >New to OpenJ9?</a></span>
<span class="footer-link"><a href="/openj9/docs/introduction/">Getting started</a></span>
<span class="footer-link"><a href="/openj9/docs/cmdline_specifying/">Command-line options</a></span>
</div>
<div class="column">
<h3>Resources</h3>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/about/" rel="noopener noreferrer" target="_blank">About</a></span>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/performance/" rel="noopener noreferrer" target="_blank">Performance</a></span>
</div>
<div class="column">
<h3 >Community</h3>
<span class="footer-link"><a href="https://www.eclipse.org/openj9/news/" rel="noopener noreferrer" target="_blank">News</a></span>
<span class="footer-link"><a href="https://blog.openj9.org/" rel="noopener noreferrer" target="_blank">Blogs</a></span>
</div>
</div>
<div class="column-incubator">
<div class="arrange-column">
<h3 ><b>OpenJ9 is an Eclipse Incubator project</b></h3>
<a class="incubator-image" href="http://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation" target="_blank"><img width="50px" src="../cr/incubator-logo.svg" alt="Eclipse Incubation"></a>
</div>
</div>
</div>
<div class="horizontal-line"></div>
<div class="below-line">
<span class="below-line-links"><a href="https://www.eclipse.org/" rel="noopener noreferrer" target="_blank">Eclipse Foundation Website </a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/privacy.php" rel="noopener noreferrer" target="_blank">Privacy Policy</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/termsofuse.php" rel="noopener noreferrer" target="_blank">Terms of Use</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/copyright.php" rel="noopener noreferrer" target="_blank">Copyright Agent</a></span>
<span class="below-line-links"><a href="https://www.eclipse.org/legal/" rel="noopener noreferrer" target="_blank">Legal</a></span>
<div class="below-line-social-media-icons">
<div class="md-footer-social">
<a href="https://github.com/eclipse-openj9/openj9" target="_blank" rel="noopener" title="OpenJ9 in GitHub" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://openj9.slack.com" target="_blank" rel="noopener" title="OpenJ9 on Slack" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
<a href="https://twitter.com/openj9" target="_blank" rel="noopener" title="OpenJ9 on Twitter" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
<a href="https://stackoverflow.com/search?q=OpenJ9" target="_blank" rel="noopener" title="OpenJ9 on StackOverflow" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M290.7 311 95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>
</a>
</div>
</div>
</div>
<!-- End of added links........................................ -->
<!--
<div class="md-footer-social">
<a href="https://github.com/eclipse-openj9/openj9" target="_blank" rel="noopener" title="OpenJ9 in GitHub" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://openj9.slack.com" target="_blank" rel="noopener" title="OpenJ9 on Slack" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
</a>
<a href="https://twitter.com/openj9" target="_blank" rel="noopener" title="OpenJ9 on Twitter" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
</a>
<a href="https://stackoverflow.com/search?q=OpenJ9" target="_blank" rel="noopener" title="OpenJ9 on StackOverflow" class="md-footer-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M290.7 311 95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>
</a>
</div>
-->
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../assets/javascripts/workers/search.4fa0e4ee.min.js", "version": 2.0}</script>
<script src="../assets/javascripts/bundle.1d3bfcf1.min.js"></script>
<script src="../javascripts/oj9.js"></script>
</body>
</html>