    001/*
    002 * Licensed to the Apache Software Foundation (ASF) under one or more
    003 * contributor license agreements.  See the NOTICE file distributed with
    004 * this work for additional information regarding copyright ownership.
    005 * The ASF licenses this file to You under the Apache License, Version 2.0
    006 * (the "License"); you may not use this file except in compliance with
    007 * the License.  You may obtain a copy of the License at
    008 *
    009 *      https://www.apache.org/licenses/LICENSE-2.0
    010 *
    011 * Unless required by applicable law or agreed to in writing, software
    012 * distributed under the License is distributed on an "AS IS" BASIS,
    013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014 * See the License for the specific language governing permissions and
    015 * limitations under the License.
    016 */
    017
    018package org.apache.commons.lang3;
    019
    020import java.util.function.BooleanSupplier;
    021import java.util.function.IntSupplier;
    022import java.util.function.LongSupplier;
    023import java.util.function.Supplier;
    024
    025import org.apache.commons.lang3.function.Suppliers;
    026
    027/**
    028 * Accesses current <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Property</a> names and values.
    029 *
    030 * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    031 * @since 3.13.0
    032 */
    033public final class SystemProperties {
    034
    035    /**
    036     * The System property name {@value}.
    037     *
    038     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/TrayIcon.html#apple.awt.enableTemplateImages">apple.awt.enableTemplateImages</a>
    039     * @since 3.15.0
    040     */
    041    public static final String APPLE_AWT_ENABLE_TEMPLATE_IMAGES = "apple.awt.enableTemplateImages";
    042
    043    /**
    044     * The System property name {@value}.
    045     * <p>
    046     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    047     * </p>
    048     *
    049     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    050     * @deprecated Deprecated without replacement.
    051     */
    052    @Deprecated
    053    public static final String AWT_TOOLKIT = "awt.toolkit";
    054
    055    /**
    056     * The System property name {@value}.
    057     *
    058     * @see <a href=
    059     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/module-summary.html#com.sun.jndi.ldap.object.trustSerialData">com.sun.jndi.ldap.object.trustSerialData</a>
    060     * @since 3.15.0
    061     */
    062    public static final String COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA = "com.sun.jndi.ldap.object.trustSerialData";
    063
    064    /**
    065     * The System property name {@value}.
    066     *
    067     * @see <a href=
    068     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/com/sun/net/httpserver/spi/HttpServerProvider.html#com.sun.net.httpserver.HttpServerProvider">com.sun.net.httpserver.HttpServerProvider</a>
    069     * @since 3.15.0
    070     */
    071    public static final String COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER = "com.sun.net.httpserver.HttpServerProvider";
    072
    073    /**
    074     * The System property name {@value}.
    075     */
    076    public static final String FILE_ENCODING = "file.encoding";
    077
    078    /**
    079     * The System property name {@value}.
    080     */
    081    public static final String FILE_SEPARATOR = "file.separator";
    082
    083    /**
    084     * The System property name {@value}.
    085     *
    086     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.nonProxyHosts">ftp.nonProxyHosts</a>
    087     * @since 3.15.0
    088     */
    089    public static final String FTP_NON_PROXY_HOST = "ftp.nonProxyHosts";
    090
    091    /**
    092     * The System property name {@value}.
    093     *
    094     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyHost">ftp.proxyHost</a>
    095     * @since 3.15.0
    096     */
    097    public static final String FTP_PROXY_HOST = "ftp.proxyHost";
    098
    099    /**
    100     * The System property name {@value}.
    101     *
    102     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyPort">ftp.proxyPort</a>
    103     * @since 3.15.0
    104     */
    105    public static final String FTP_PROXY_PORT = "ftp.proxyPort";
    106
    107    /**
    108     * The System property name {@value}.
    109     *
    110     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.agent">http.agent</a>
    111     * @since 3.15.0
    112     */
    113    public static final String HTTP_AGENT = "http.agent";
    114
    115    /**
    116     * The System property name {@value}.
    117     *
    118     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#auth.digest.cnonceRepeat">auth.digest.cnonceRepeat</a>
    119     * @since 3.15.0
    120     */
    121    public static final String HTTP_AUTH_DIGEST_CNONCE_REPEAT = "http.auth.digest.cnonceRepeat";
    122
    123    /**
    124     * The System property name {@value}.
    125     *
    126     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#reEnabledAlgorithms">http.auth.digest.reEnabledAlgorithms</a>
    127     * @since 3.15.0
    128     */
    129    public static final String HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS = "http.auth.digest.reEnabledAlgorithms";
    130
    131    /**
    132     * The System property name {@value}.
    133     *
    134     * @see <a href=
    135     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateProxy">http.auth.digest.validateProxy</a>
    136     * @since 3.15.0
    137     */
    138    public static final String HTTP_AUTH_DIGEST_VALIDATE_PROXY = "http.auth.digest.validateProxy";
    139
    140    /**
    141     * The System property name {@value}.
    142     *
    143     * @see <a href=
    144     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateServer">http.auth.digest.validateServer</a>
    145     * @since 3.15.0
    146     */
    147    public static final String HTTP_AUTH_DIGEST_VALIDATE_SERVER = "http.auth.digest.validateServer";
    148
    149    /**
    150     * The System property name {@value}.
    151     *
    152     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.ntlm.domain">http.auth.ntlm.domain</a>
    153     * @since 3.15.0
    154     */
    155    public static final String HTTP_AUTH_NTLM_DOMAIN = "http.auth.ntlm.domain";
    156
    157    /**
    158     * The System property name {@value}.
    159     *
    160     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive">http.keepAlive</a>
    161     * @since 3.15.0
    162     */
    163    public static final String HTTP_KEEP_ALIVE = "http.keepAlive";
    164
    165    /**
    166     * The System property name {@value}.
    167     *
    168     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.proxy">http.keepAlive.time.proxy</a>
    169     * @since 3.15.0
    170     */
    171    public static final String HTTP_KEEP_ALIVE_TIME_PROXY = "http.keepAlive.time.proxy";
    172
    173    /**
    174     * The System property name {@value}.
    175     *
    176     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.server">http.keepAlive.time.server</a>
    177     * @since 3.15.0
    178     */
    179    public static final String HTTP_KEEP_ALIVE_TIME_SERVER = "http.keepAlive.time.server";
    180
    181    /**
    182     * The System property name {@value}.
    183     *
    184     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxConnections">http.maxConnections</a>
    185     * @since 3.15.0
    186     */
    187    public static final String HTTP_MAX_CONNECTIONS = "http.maxConnections";
    188
    189    /**
    190     * The System property name {@value}.
    191     *
    192     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxRedirects">http.maxRedirects</a>
    193     * @since 3.15.0
    194     */
    195    public static final String HTTP_MAX_REDIRECTS = "http.maxRedirects";
    196
    197    /**
    198     * The System property name {@value}.
    199     *
    200     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.nonProxyHosts">http.nonProxyHosts</a>
    201     * @since 3.15.0
    202     */
    203    public static final String HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts";
    204
    205    /**
    206     * The System property name {@value}.
    207     *
    208     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyHost">http.proxyHost</a>
    209     * @since 3.15.0
    210     */
    211    public static final String HTTP_PROXY_HOST = "http.proxyHost";
    212
    213    /**
    214     * The System property name {@value}.
    215     *
    216     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyPort">http.proxyPort</a>
    217     * @since 3.15.0
    218     */
    219    public static final String HTTP_PROXY_PORT = "http.proxyPort";
    220
    221    /**
    222     * The System property name {@value}.
    223     *
    224     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyHost">https.proxyHost</a>
    225     * @since 3.15.0
    226     */
    227    public static final String HTTPS_PROXY_HOST = "https.proxyHost";
    228
    229    /**
    230     * The System property name {@value}.
    231     *
    232     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyPort">https.proxyPort</a>
    233     * @since 3.15.0
    234     */
    235    public static final String HTTPS_PROXY_PORT = "https.proxyPort";
    236
    237    /**
    238     * The System property name {@value}.
    239     * <p>
    240     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    241     * </p>
    242     *
    243     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    244     * @deprecated Deprecated without replacement.
    245     */
    246    @Deprecated
    247    public static final String JAVA_AWT_FONTS = "java.awt.fonts";
    248
    249    /**
    250     * The System property name {@value}.
    251     * <p>
    252     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    253     * </p>
    254     *
    255     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    256     * @deprecated Deprecated without replacement.
    257     */
    258    @Deprecated
    259    public static final String JAVA_AWT_GRAPHICSENV = "java.awt.graphicsenv";
    260
    261    /**
    262     * The System property name {@value}.
    263     * <p>
    264     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    265     * </p>
    266     *
    267     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    268     * @deprecated Deprecated without replacement.
    269     */
    270    @Deprecated
    271    public static final String JAVA_AWT_HEADLESS = "java.awt.headless";
    272
    273    /**
    274     * The System property name {@value}.
    275     * <p>
    276     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    277     * </p>
    278     *
    279     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    280     * @deprecated Deprecated without replacement.
    281     */
    282    @Deprecated
    283    public static final String JAVA_AWT_PRINTERJOB = "java.awt.printerjob";
    284
    285    /**
    286     * The System property name {@value}.
    287     *
    288     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">java.class.path</a>
    289     */
    290    public static final String JAVA_CLASS_PATH = "java.class.path";
    291
    292    /**
    293     * The System property name {@value}.
    294     */
    295    public static final String JAVA_CLASS_VERSION = "java.class.version";
    296
    297    /**
    298     * The System property name {@value}.
    299     * <p>
    300     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    301     * </p>
    302     *
    303     * @see <a href="https://bugs.openjdk.org/browse/JDK-8305998">JDK-8305998</a>
    304     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    305     * @deprecated Deprecated without replacement.
    306     */
    307    @Deprecated
    308    public static final String JAVA_COMPILER = "java.compiler";
    309
    310    /**
    311     * The System property name {@value}.
    312     *
    313     * @see <a href=
    314     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/ContentHandler.html#java.content.handler.pkgs">java.content.handler.pkgs</a>
    315     * @since 3.15.0
    316     */
    317    public static final String JAVA_CONTENT_HANDLER_PKGS = "java.content.handler.pkgs";
    318
    319    /**
    320     * The System property name {@value}.
    321     * <p>
    322     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    323     * </p>
    324     *
    325     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    326     * @deprecated Deprecated without replacement.
    327     */
    328    @Deprecated
    329    public static final String JAVA_ENDORSED_DIRS = "java.endorsed.dirs";
    330
    331    /**
    332     * The System property name {@value}.
    333     * <p>
    334     * Not in Java 17 and above according to <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a> Javadoc.
    335     * </p>
    336     *
    337     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    338     * @deprecated Deprecated without replacement.
    339     */
    340    @Deprecated
    341    public static final String JAVA_EXT_DIRS = "java.ext.dirs";
    342
    343    /**
    344     * The System property name {@value}.
    345     */
    346    public static final String JAVA_HOME = "java.home";
    347
    348    /**
    349     * The System property name {@value}.
    350     */
    351    public static final String JAVA_IO_TMPDIR = "java.io.tmpdir";
    352
    353    /**
    354     * The System property name {@value}.
    355     */
    356    public static final String JAVA_LIBRARY_PATH = "java.library.path";
    357
    358    /**
    359     * The System property name {@value}.
    360     */
    361    public static final String JAVA_LOCALE_PROVIDERS = "java.locale.providers";
    362
    363    /**
    364     * The System property name {@value}.
    365     *
    366     * @see <a href=
    367     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Locale.html#java.locale.useOldISOCodes">java.locale.useOldISOCodes</a>
    368     * @since 3.15.0
    369     */
    370    public static final String JAVA_LOCALE_USE_OLD_ISO_CODES = "java.locale.useOldISOCodes";
    371
    372    /**
    373     * The System property name {@value}.
    374     *
    375     * @see <a href=
    376     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv4Stack">java.net.preferIPv4Stack</a>
    377     * @since 3.15.0
    378     */
    379    public static final String JAVA_NET_PREFER_IPV4_STACK = "java.net.preferIPv4Stack";
    380
    381    /**
    382     * The System property name {@value}.
    383     *
    384     * @see <a href=
    385     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv6Addresses">java.net.preferIPv6Addresses</a>
    386     * @since 3.15.0
    387     */
    388    public static final String JAVA_NET_PREFER_IPV6_ADDRESSES = "java.net.preferIPv6Addresses";
    389
    390    /**
    391     * The System property name {@value}.
    392     *
    393     * @see <a href=
    394     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.password">java.net.socks.password</a>
    395     * @since 3.15.0
    396     */
    397    public static final String JAVA_NET_SOCKS_PASSWORD = "java.net.socks.password";
    398
    399    /**
    400     * The System property name {@value}.
    401     *
    402     * @see <a href=
    403     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.username">java.net.socks.username</a>
    404     * @since 3.15.0
    405     */
    406    public static final String JAVA_NET_SOCKS_USER_NAME = "java.net.socks.username";
    407
    408    /**
    409     * The System property name {@value}.
    410     *
    411     * @see <a href=
    412     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.useSystemProxies">java.net.useSystemProxies</a>
    413     * @since 3.15.0
    414     */
    415    public static final String JAVA_NET_USE_SYSTEM_PROXIES = "java.net.useSystemProxies";
    416
    417    /**
    418     * The System property name {@value}.
    419     *
    420     * @see <a href=
    421     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
    422     * @since 3.15.0
    423     */
    424    public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE = "java.nio.channels.DefaultThreadPool.initialSize";
    425
    426    /**
    427     * The System property name {@value}.
    428     *
    429     * @see <a href=
    430     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.threadFactory">java.nio.channels.DefaultThreadPool.threadFactory</a>
    431     * @since 3.15.0
    432     */
    433    public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY = "java.nio.channels.DefaultThreadPool.threadFactory";
    434
    435    /**
    436     * The System property name {@value}.
    437     *
    438     * @see <a href=
    439     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
    440     * @since 3.15.0
    441     */
    442    public static final String JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER = "java.nio.channels.spi.AsynchronousChannelProvider";
    443
    444    /**
    445     * The System property name {@value}.
    446     *
    447     * @see <a href=
    448     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/channels/spi/SelectorProvider.html#java.nio.channels.spi.SelectorProvider">java.nio.channels.spi.SelectorProvider</a>
    449     * @since 3.15.0
    450     */
    451    public static final String JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER = "java.nio.channels.spi.SelectorProvider";
    452
    453    /**
    454     * The System property name {@value}.
    455     *
    456     * @see <a href=
    457     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/nio/file/spi/FileSystemProvider.html#java.nio.file.spi.DefaultFileSystemProvider">java.nio.file.spi.DefaultFileSystemProvider</a>
    458     * @since 3.15.0
    459     */
    460    public static final String JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER = "java.nio.file.spi.DefaultFileSystemProvider";
    461
    462    /**
    463     * The System property name {@value}.
    464     *
    465     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Properties.html#java.properties.date">java.properties.date</a>
    466     * @since 3.15.0
    467     */
    468    public static final String JAVA_PROPERTIES_DATE = "java.properties.date";
    469
    470    /**
    471     * The System property name {@value}.
    472     *
    473     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/URL.html#java.protocol.handler.pkgs">java.protocol.handler.pkgs</a>
    474     * @since 3.15.0
    475     */
    476    public static final String JAVA_PROTOCOL_HANDLER_PKGS = "java.protocol.handler.pkgs";
    477
    478    /**
    479     * The System property name {@value}.
    480     *
    481     * @see <a href=
    482     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.codebase">java.rmi.server.codebase</a>
    483     * @since 3.15.0
    484     */
    485    public static final String JAVA_RMI_SERVER_CODEBASE = "java.rmi.server.codebase";
    486
    487    /**
    488     * The System property name {@value}.
    489     *
    490     * @see <a href=
    491     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html#java.rmi.server.hostname">java.rmi.server.hostname</a>
    492     * @since 3.15.0
    493     */
    494    public static final String JAVA_RMI_SERVER_HOST_NAME = "java.rmi.server.hostname";
    495
    496    /**
    497     * The System property name {@value}.
    498     *
    499     * @see <a href=
    500     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/java/rmi/server/ObjID.html#java.rmi.server.randomIDs">java.rmi.server.randomIDs</a>
    501     * @since 3.15.0
    502     */
    503    public static final String JAVA_RMI_SERVER_RANDOM_IDS = "java.rmi.server.randomIDs";
    504
    505    /**
    506     * The System property name {@value}.
    507     *
    508     * @see <a href=
    509     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.RMIClassLoaderSpi">java.rmi.server.RMIClassLoaderSpi</a>
    510     * @since 3.15.0
    511     */
    512    public static final String JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI = "java.rmi.server.RMIClassLoaderSpi";
    513
    514    /**
    515     * The System property name {@value}.
    516     */
    517    public static final String JAVA_RUNTIME_NAME = "java.runtime.name";
    518
    519    /**
    520     * The System property name {@value}.
    521     */
    522    public static final String JAVA_RUNTIME_VERSION = "java.runtime.version";
    523
    524    /**
    525     * The System property name {@value}.
    526     *
    527     * @see <a href=
    528     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.security.auth/com/sun/security/auth/login/ConfigFile.html#java.security.auth.login.config">java.security.auth.login.config</a>
    529     * @since 3.15.0
    530     */
    531    public static final String JAVA_SECURITY_AUTH_LOGIN_CONFIG = "java.security.auth.login.config";
    532
    533    /**
    534     * The System property name {@value}.
    535     *
    536     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.conf</a>
    537     * @see <a href=
    538     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.conf">package
    539     *      javax.security.auth.kerberos conf</a>
    540     * @since 3.18.0
    541     */
    542    public static final String JAVA_SECURITY_KERBEROS_CONF = "java.security.krb5.conf";
    543
    544    /**
    545     * The System property name {@value}.
    546     *
    547     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.kdc</a>
    548     * @see <a href=
    549     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.kdc">package
    550     *      javax.security.auth.kerberos KDC</a>
    551     * @since 3.18.0
    552     */
    553    public static final String JAVA_SECURITY_KERBEROS_KDC = "java.security.krb5.kdc";
    554
    555    /**
    556     * The System property name {@value}.
    557     *
    558     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.realm</a>
    559     * @see <a href=
    560     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.realm">package
    561     *      javax.security.auth.kerberos realm</a>
    562     * @since 3.18.0
    563     */
    564    public static final String JAVA_SECURITY_KERBEROS_REALM = "java.security.krb5.realm";
    565
    566    /**
    567     * The System property name {@value}.
    568     *
    569     * @see <a href=
    570     *      "https://docs.oracle.com/en/java/javase/24/security/troubleshooting-security.html">java.security.debug</a>
    571     * @since 3.18.0
    572     */
    573    public static final String JAVA_SECURITY_DEBUG = "java.security.debug";
    574
    575    /**
    576     * The System property name {@value}.
    577     *
    578     * @see <a href=
    579     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/SecurityManager.html#java.security.manager">java.security.manager</a>
    580     * @since 3.15.0
    581     */
    582    public static final String JAVA_SECURITY_MANAGER = "java.security.manager";
    583
    584    /**
    585     * The System property name {@value}.
    586     *
    587     * @see <a href=
    588     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/System.html#java.specification.maintenance.version">java.specification.maintenance.version</a>
    589     * @since 3.15.0
    590     */
    591    public static final String JAVA_SPECIFICATION_MAINTENANCE_VERSION = "java.specification.maintenance.version";
    592
    593    /**
    594     * The System property name {@value}.
    595     */
    596    public static final String JAVA_SPECIFICATION_NAME = "java.specification.name";
    597
    598    /**
    599     * The System property name {@value}.
    600     */
    601    public static final String JAVA_SPECIFICATION_VENDOR = "java.specification.vendor";
    602
    603    /**
    604     * The System property name {@value}.
    605     */
    606    public static final String JAVA_SPECIFICATION_VERSION = "java.specification.version";
    607
    608    /**
    609     * The System property name {@value}.
    610     *
    611     * @see <a href=
    612     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/ClassLoader.html#java.system.class.loader">java.system.class.loader</a>
    613     * @since 3.15.0
    614     */
    615    public static final String JAVA_SYSTEM_CLASS_LOADER = "java.system.class.loader";
    616
    617    /**
    618     * The System property name {@value}.
    619     *
    620     * @see <a href=
    621     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/zone/ZoneRulesProvider.html#java.time.zone.DefaultZoneRulesProvider">java.time.zone.DefaultZoneRulesProvider</a>
    622     * @since 3.15.0
    623     */
    624    public static final String JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER = "java.time.zone.DefaultZoneRulesProvider";
    625
    626    /**
    627     * The System property name {@value}.
    628     *
    629     * @see <a href=
    630     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.exceptionHandler">java.util.concurrent.ForkJoinPool.common.exceptionHandler</a>
    631     * @since 3.15.0
    632     */
    633    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER = "java.util.concurrent.ForkJoinPool.common.exceptionHandler";
    634
    635    /**
    636     * The System property name {@value}.
    637     *
    638     * @see <a href=
    639     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.maximumSpares">java.util.concurrent.ForkJoinPool.common.maximumSpares</a>
    640     * @since 3.15.0
    641     */
    642    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES = "java.util.concurrent.ForkJoinPool.common.maximumSpares";
    643
    644    /**
    645     * The System property name {@value}.
    646     *
    647     * @see <a href=
    648     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.parallelism">java.util.concurrent.ForkJoinPool.common.parallelism</a>
    649     * @since 3.15.0
    650     */
    651    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM = "java.util.concurrent.ForkJoinPool.common.parallelism";
    652
    653    /**
    654     * The System property name {@value}.
    655     *
    656     * @see <a href=
    657     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.threadFactory">java.util.concurrent.ForkJoinPool.common.threadFactory</a>
    658     * @since 3.15.0
    659     */
    660    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY = "java.util.concurrent.ForkJoinPool.common.threadFactory";
    661
    662    /**
    663     * The System property name {@value}.
    664     *
    665     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Currency.html#java.util.currency.data">java.util.currency.data</a>
    666     * @since 3.15.0
    667     */
    668    public static final String JAVA_UTIL_CURRENCY_DATA = "java.util.currency.data";
    669
    670    /**
    671     * The System property name {@value}.
    672     *
    673     * @see <a href=
    674     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.class">java.util.logging.config.class</a>
    675     * @since 3.15.0
    676     */
    677    public static final String JAVA_UTIL_LOGGING_CONFIG_CLASS = "java.util.logging.config.class";
    678
    679    /**
    680     * The System property name {@value}.
    681     *
    682     * @see <a href=
    683     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.file">java.util.logging.config.file</a>
    684     * @since 3.15.0
    685     */
    686    public static final String JAVA_UTIL_LOGGING_CONFIG_FILE = "java.util.logging.config.file";
    687
    688    /**
    689     * The System property name {@value}.
    690     *
    691     * @see <a href=
    692     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.logging/java/util/logging/SimpleFormatter.html#java.util.logging.SimpleFormatter.format">java.util.logging.SimpleFormatter.format</a>
    693     * @since 3.15.0
    694     */
    695    public static final String JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT = "java.util.logging.simpleformatter.format";
    696
    697    /**
    698     * The System property name {@value}.
    699     *
    700     * @see <a href=
    701     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.prefs/java/util/prefs/Preferences.html#java.util.prefs.PreferencesFactory">java.util.prefs.PreferencesFactory</a>
    702     */
    703    public static final String JAVA_UTIL_PREFS_PREFERENCES_FACTORY = "java.util.prefs.PreferencesFactory";
    704
    705    /**
    706     * The System property name {@value}.
    707     *
    708     * @see <a href=
    709     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/PropertyResourceBundle.html#java.util.PropertyResourceBundle.encoding">java.util.PropertyResourceBundle.encoding</a>
    710     * @since 3.15.0
    711     */
    712    public static final String JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING = "java.util.PropertyResourceBundle.encoding";
    713
    714    /**
    715     * The System property name {@value}.
    716     */
    717    public static final String JAVA_VENDOR = "java.vendor";
    718
    719    /**
    720     * The System property name {@value}.
    721     */
    722    public static final String JAVA_VENDOR_URL = "java.vendor.url";
    723
    724    /**
    725     * The System property name {@value}.
    726     *
    727     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/System.html#java.vendor.version">java.vendor.version</a>
    728     * @since 3.15.0
    729     */
    730    public static final String JAVA_VENDOR_VERSION = "java.vendor.version";
    731
    732    /**
    733     * The System property name {@value}.
    734     */
    735    public static final String JAVA_VERSION = "java.version";
    736
    737    /**
    738     * The System property name {@value}.
    739     *
    740     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/System.html#java.version.date">java.version.date</a>
    741     * @since 3.15.0
    742     */
    743    public static final String JAVA_VERSION_DATE = "java.version.date";
    744
    745    /**
    746     * The System property name {@value}.
    747     */
    748    public static final String JAVA_VM_INFO = "java.vm.info";
    749
    750    /**
    751     * The System property name {@value}.
    752     */
    753    public static final String JAVA_VM_NAME = "java.vm.name";
    754
    755    /**
    756     * The System property name {@value}.
    757     */
    758    public static final String JAVA_VM_SPECIFICATION_NAME = "java.vm.specification.name";
    759
    760    /**
    761     * The System property name {@value}.
    762     */
    763    public static final String JAVA_VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor";
    764
    765    /**
    766     * The System property name {@value}.
    767     */
    768    public static final String JAVA_VM_SPECIFICATION_VERSION = "java.vm.specification.version";
    769
    770    /**
    771     * The System property name {@value}.
    772     */
    773    public static final String JAVA_VM_VENDOR = "java.vm.vendor";
    774
    775    /**
    776     * The System property name {@value}.
    777     */
    778    public static final String JAVA_VM_VERSION = "java.vm.version";
    779
    780    /**
    781     * The System property name {@value}.
    782     *
    783     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/module-summary.html#java.xml.config.file">java.xml</a>
    784     * @since 3.15.0
    785     */
    786    public static final String JAVA_XML_CONFIG_FILE = "java.xml.config.file";
    787
    788    /**
    789     * The System property name {@value}.
    790     *
    791     * @see <a href=
    792     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/Toolkit.html#javax.accessibility.assistive_technologies">javax.accessibility.assistive_technologies</a>
    793     * @since 3.15.0
    794     */
    795    public static final String JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES = "javax.accessibility.assistive_technologies";
    796
    797    /**
    798     * The System property name {@value}.
    799     *
    800     * @see <a href=
    801     *      "https://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/net/ssl/SSLSessionContext.html#javax.net.ssl.sessionCacheSize">javax.net.ssl.sessionCacheSize</a>
    802     * @since 3.15.0
    803     */
    804    public static final String JAVAX_NET_SSL_SESSION_CACHE_SIZE = "javax.net.ssl.sessionCacheSize";
    805
    806    /**
    807     * The System property name {@value}.
    808     *
    809     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledCipherSuites">javax.rmi.ssl.client.enabledCipherSuites</a>
    810     * @since 3.15.0
    811     */
    812    public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES = "javax.rmi.ssl.client.enabledCipherSuites";
    813
    814    /**
    815     * The System property name {@value}.
    816     *
    817     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledProtocols">javax.rmi.ssl.client.enabledProtocols</a>
    818     * @since 3.15.0
    819     */
    820    public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS = "javax.rmi.ssl.client.enabledProtocols";
    821
    822    /**
    823     * The System property name {@value}.
    824     *
    825     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.security.jgss/org/ietf/jgss/package-summary.html#javax.security.auth.useSubjectCredsOnly">javax.security.auth.useSubjectCredsOnly</a>
    826     * @since 3.15.0
    827     */
    828    public static final String JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY = "javax.security.auth.useSubjectCredsOnly";
    829
    830    /**
    831     * The System property name {@value}.
    832     *
    833     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.smartcardio/javax/smartcardio/TerminalFactory.html#javax.smartcardio.TerminalFactory.DefaultType">javax.smartcardio.TerminalFactory.DefaultType</a>
    834     * @since 3.15.0
    835     */
    836    public static final String JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE = "javax.smartcardio.TerminalFactory.DefaultType";
    837
    838    /**
    839     * The System property name {@value}.
    840     *
    841     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/java.sql/java/sql/DriverManager.html#jdbc.drivers">jdbc.drivers</a>
    842     * @since 3.15.0
    843     */
    844    public static final String JDBC_DRIVERS = "jdbc.drivers";
    845
    846    /**
    847     * The System property name {@value}.
    848     *
    849     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.http.auth.proxying.disabledSchemes</a>
    850     * @since 3.15.0
    851     */
    852    public static final String JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES = "jdk.http.auth.proxying.disabledSchemes";
    853
    854    /**
    855     * The System property name {@value}.
    856     *
    857     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.http.auth.tunneling.disabledSchemes</a>
    858     * @since 3.15.0
    859     */
    860    public static final String JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES = "jdk.http.auth.tunneling.disabledSchemes";
    861
    862    /**
    863     * The System property name {@value}.
    864     *
    865     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.allowRestrictedHeaders</a>
    866     * @since 3.15.0
    867     */
    868    public static final String JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS = "jdk.httpclient.allowRestrictedHeaders";
    869
    870    /**
    871     * The System property name {@value}.
    872     *
    873     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.auth.retrylimit</a>
    874     * @since 3.15.0
    875     */
    876    public static final String JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT = "jdk.httpclient.auth.retrylimit";
    877
    878    /**
    879     * The System property name {@value}.
    880     *
    881     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.bufsize</a>
    882     * @since 3.15.0
    883     */
    884    public static final String JDK_HTTP_CLIENT_BUF_SIZE = "jdk.httpclient.bufsize";
    885
    886    /**
    887     * The System property name {@value}.
    888     *
    889     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.connectionPoolSize</a>
    890     * @since 3.15.0
    891     */
    892    public static final String JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE = "jdk.httpclient.connectionPoolSize";
    893
    894    /**
    895     * The System property name {@value}.
    896     *
    897     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.connectionWindowSize</a>
    898     * @since 3.15.0
    899     */
    900    public static final String JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE = "jdk.httpclient.connectionWindowSize";
    901
    902    /**
    903     * The System property name {@value}.
    904     *
    905     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.disableRetryConnect</a>
    906     * @since 3.15.0
    907     */
    908    public static final String JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT = "jdk.httpclient.disableRetryConnect";
    909
    910    /**
    911     * The System property name {@value}.
    912     *
    913     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.enableAllMethodRetry</a>
    914     * @since 3.15.0
    915     */
    916    public static final String JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY = "jdk.httpclient.enableAllMethodRetry";
    917
    918    /**
    919     * The System property name {@value}.
    920     *
    921     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.enablepush</a>
    922     * @since 3.15.0
    923     */
    924    public static final String JDK_HTTP_CLIENT_ENABLE_PUSH = "jdk.httpclient.enablepush";
    925
    926    /**
    927     * The System property name {@value}.
    928     *
    929     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.hpack.maxheadertablesize</a>
    930     * @since 3.15.0
    931     */
    932    public static final String JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE = "jdk.httpclient.hpack.maxheadertablesize";
    933
    934    /**
    935     * The System property name {@value}.
    936     *
    937     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.HttpClient.log</a>
    938     * @since 3.15.0
    939     */
    940    public static final String JDK_HTTP_CLIENT_HTTP_CLIENT_LOG = "jdk.httpclient.HttpClient.log";
    941
    942    /**
    943     * The System property name {@value}.
    944     *
    945     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout</a>
    946     * @since 3.15.0
    947     */
    948    public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT = "jdk.httpclient.keepalive.timeout";
    949
    950    /**
    951     * The System property name {@value}.
    952     *
    953     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout.h2</a>
    954     * @since 3.15.0
    955     */
    956    public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2 = "jdk.httpclient.keepalive.timeout.h2";
    957
    958    /**
    959     * The System property name {@value}.
    960     *
    961     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.maxframesize</a>
    962     * @since 3.15.0
    963     */
    964    public static final String JDK_HTTP_CLIENT_MAX_FRAME_SIZE = "jdk.httpclient.maxframesize";
    965
    966    /**
    967     * The System property name {@value}.
    968     *
    969     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.maxstreams</a>
    970     * @since 3.15.0
    971     */
    972    public static final String JDK_HTTP_CLIENT_MAX_STREAMS = "jdk.httpclient.maxstreams";
    973
    974    /**
    975     * The System property name {@value}.
    976     *
    977     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.receiveBufferSize</a>
    978     * @since 3.15.0
    979     */
    980    public static final String JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE = "jdk.httpclient.receiveBufferSize";
    981
    982    /**
    983     * The System property name {@value}.
    984     *
    985     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.redirects.retrylimit</a>
    986     * @since 3.15.0
    987     */
    988    public static final String JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT = "jdk.httpclient.redirects.retrylimit";
    989
    990    /**
    991     * The System property name {@value}.
    992     *
    993     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.sendBufferSize</a>
    994     * @since 3.15.0
    995     */
    996    public static final String JDK_HTTP_CLIENT_SEND_BUFFER_SIZE = "jdk.httpclient.sendBufferSize";
    997
    998    /**
    999     * The System property name {@value}.
    1000     *
    1001     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.websocket.writeBufferSize</a>
    1002     * @since 3.15.0
    1003     */
    1004    public static final String JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE = "jdk.httpclient.websocket.writeBufferSize";
    1005
    1006    /**
    1007     * The System property name {@value}.
    1008     *
    1009     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpclient.windowsize</a>
    1010     * @since 3.15.0
    1011     */
    1012    public static final String JDK_HTTP_CLIENT_WINDOW_SIZE = "jdk.httpclient.windowsize";
    1013
    1014    /**
    1015     * The System property name {@value}.
    1016     *
    1017     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.httpserver.maxConnections</a>
    1018     * @since 3.15.0
    1019     */
    1020    public static final String JDK_HTTP_SERVER_MAX_CONNECTIONS = "jdk.httpserver.maxConnections";
    1021
    1022    /**
    1023     * The System property name {@value}.
    1024     *
    1025     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.https.negotiate.cbt</a>
    1026     * @since 3.15.0
    1027     */
    1028    public static final String JDK_HTTPS_NEGOTIATE_CBT = "jdk.https.negotiate.cbt";
    1029
    1030    /**
    1031     * The System property name {@value}.
    1032     *
    1033     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.includeInExceptions</a>
    1034     * @since 3.15.0
    1035     */
    1036    public static final String JDK_INCLUDE_IN_EXCEPTIONS = "jdk.includeInExceptions";
    1037
    1038    /**
    1039     * The System property name {@value}.
    1040     *
    1041     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.internal.httpclient.disableHostnameVerification</a>
    1042     * @since 3.15.0
    1043     */
    1044    public static final String JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION = "jdk.internal.httpclient.disableHostnameVerification";
    1045
    1046    /**
    1047     * The System property name {@value}.
    1048     *
    1049     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.io.permissionsUseCanonicalPath</a>
    1050     * @since 3.15.0
    1051     */
    1052    public static final String JDK_IO_PERMISSIONS_USE_CANONICAL_PATH = "jdk.io.permissionsUseCanonicalPath";
    1053
    1054    /**
    1055     * The System property name {@value}.
    1056     *
    1057     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.jndi.ldap.object.factoriesFilter</a>
    1058     * @since 3.15.0
    1059     */
    1060    public static final String JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER = "jdk.jndi.ldap.object.factoriesFilter";
    1061
    1062    /**
    1063     * The System property name {@value}.
    1064     *
    1065     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.jndi.object.factoriesFilter</a>
    1066     * @since 3.15.0
    1067     */
    1068    public static final String JDK_JNDI_OBJECT_FACTORIES_FILTER = "jdk.jndi.object.factoriesFilter";
    1069
    1070    /**
    1071     * The System property name {@value}.
    1072     *
    1073     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.jndi.rmi.object.factoriesFilter</a>
    1074     * @since 3.15.0
    1075     */
    1076    public static final String JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER = "jdk.jndi.rmi.object.factoriesFilter";
    1077
    1078    /**
    1079     * The System property name {@value}.
    1080     *
    1081     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.module.main</a>
    1082     * @since 3.15.0
    1083     */
    1084    public static final String JDK_MODULE_MAIN = "jdk.module.main";
    1085
    1086    /**
    1087     * The System property name {@value}.
    1088     *
    1089     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.module.main.class</a>
    1090     * @since 3.15.0
    1091     */
    1092    public static final String JDK_MODULE_MAIN_CLASS = "jdk.module.main.class";
    1093
    1094    /**
    1095     * The System property name {@value}.
    1096     *
    1097     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.module.path</a>
    1098     * @since 3.15.0
    1099     */
    1100    public static final String JDK_MODULE_PATH = "jdk.module.path";
    1101
    1102    /**
    1103     * The System property name {@value}.
    1104     *
    1105     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.module.upgrade.path</a>
    1106     * @since 3.15.0
    1107     */
    1108    public static final String JDK_MODULE_UPGRADE_PATH = "jdk.module.upgrade.path";
    1109
    1110    /**
    1111     * The System property name {@value}.
    1112     *
    1113     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.net.unixdomain.tmpdir</a>
    1114     * @since 3.15.0
    1115     */
    1116    public static final String JDK_NET_UNIX_DOMAIN_TMPDIR = "jdk.net.unixdomain.tmpdir";
    1117
    1118    /**
    1119     * The System property name {@value}.
    1120     *
    1121     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1122     * @since 3.15.0
    1123     */
    1124    public static final String JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES = "jdk.net.URLClassPath.showIgnoredClassPathEntries";
    1125
    1126    /**
    1127     * The System property name {@value}.
    1128     *
    1129     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.serialFilter</a>
    1130     * @since 3.15.0
    1131     */
    1132    public static final String JDK_SERIAL_FILTER = "jdk.serialFilter";
    1133
    1134    /**
    1135     * The System property name {@value}.
    1136     *
    1137     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.serialFilterFactory</a>
    1138     * @since 3.15.0
    1139     */
    1140    public static final String JDK_SERIAL_FILTER_FACTORY = "jdk.serialFilterFactory";
    1141
    1142    /**
    1143     * The System property name {@value}.
    1144     *
    1145     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.tls.client.SignatureSchemes</a>
    1146     * @since 3.15.0
    1147     */
    1148    public static final String JDK_TLS_CLIENT_SIGNATURE_SCHEMES = "jdk.tls.client.SignatureSchemes";
    1149
    1150    /**
    1151     * The System property name {@value}.
    1152     *
    1153     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.tls.namedGroups</a>
    1154     * @since 3.15.0
    1155     */
    1156    public static final String JDK_TLS_NAMED_GROUPS = "jdk.tls.namedGroups";
    1157
    1158    /**
    1159     * The System property name {@value}.
    1160     *
    1161     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.tls.server.SignatureSchemes</a>
    1162     * @since 3.15.0
    1163     */
    1164    public static final String JDK_TLS_SERVER_SIGNATURE_SCHEMES = "jdk.tls.server.SignatureSchemes";
    1165
    1166    /**
    1167     * The System property name {@value}.
    1168     *
    1169     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.virtualThreadScheduler.maxPoolSize</a>
    1170     * @since 3.15.0
    1171     */
    1172    public static final String JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE = "jdk.virtualThreadScheduler.maxPoolSize";
    1173
    1174    /**
    1175     * The System property name {@value}.
    1176     *
    1177     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.virtualThreadScheduler.parallelism</a>
    1178     * @since 3.15.0
    1179     */
    1180    public static final String JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM = "jdk.virtualThreadScheduler.parallelism";
    1181
    1182    /**
    1183     * The System property name {@value}.
    1184     *
    1185     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.cdataChunkSize</a>
    1186     * @since 3.15.0
    1187     */
    1188    public static final String JDK_XML_CDATA_CHUNK_SIZE = "jdk.xml.cdataChunkSize";
    1189
    1190    /**
    1191     * The System property name {@value}.
    1192     *
    1193     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.dtd.support</a>
    1194     * @since 3.15.0
    1195     */
    1196    public static final String JDK_XML_DTD_SUPPORT = "jdk.xml.dtd.support";
    1197
    1198    /**
    1199     * The System property name {@value}.
    1200     *
    1201     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.elementAttributeLimit</a>
    1202     * @since 3.15.0
    1203     */
    1204    public static final String JDK_XML_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";
    1205
    1206    /**
    1207     * The System property name {@value}.
    1208     *
    1209     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.enableExtensionFunctions</a>
    1210     * @since 3.15.0
    1211     */
    1212    public static final String JDK_XML_ENABLE_EXTENSION_FUNCTIONS = "jdk.xml.enableExtensionFunctions";
    1213
    1214    /**
    1215     * The System property name {@value}.
    1216     *
    1217     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.entityExpansionLimit</a>
    1218     * @since 3.15.0
    1219     */
    1220    public static final String JDK_XML_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";
    1221
    1222    /**
    1223     * The System property name {@value}.
    1224     *
    1225     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.entityReplacementLimi_t</a>
    1226     * @since 3.15.0
    1227     */
    1228    public static final String JDK_XML_ENTITY_REPLACEMENT_LIMIT = "jdk.xml.entityReplacementLimi_t";
    1229
    1230    /**
    1231     * The System property name {@value}.
    1232     *
    1233     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.isStandalone</a>
    1234     * @since 3.15.0
    1235     */
    1236    public static final String JDK_XML_IS_STANDALONE = "jdk.xml.isStandalone";
    1237
    1238    /**
    1239     * The System property name {@value}.
    1240     *
    1241     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.jdkcatalog.resolve</a>
    1242     * @since 3.15.0
    1243     */
    1244    public static final String JDK_XML_JDK_CATALOG_RESOLVE = "jdk.xml.jdkcatalog.resolve";
    1245
    1246    /**
    1247     * The System property name {@value}.
    1248     *
    1249     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.maxElementDepth</a>
    1250     * @since 3.15.0
    1251     */
    1252    public static final String JDK_XML_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth";
    1253
    1254    /**
    1255     * The System property name {@value}.
    1256     *
    1257     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.maxGeneralEntitySizeLimit</a>
    1258     * @since 3.15.0
    1259     */
    1260    public static final String JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";
    1261
    1262    /**
    1263     * The System property name {@value}.
    1264     *
    1265     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.maxOccurLimit</a>
    1266     * @since 3.15.0
    1267     */
    1268    public static final String JDK_XML_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";
    1269
    1270    /**
    1271     * The System property name {@value}.
    1272     *
    1273     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.maxParameterEntitySizeLimit</a>
    1274     * @since 3.15.0
    1275     */
    1276    public static final String JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";
    1277
    1278    /**
    1279     * The System property name {@value}.
    1280     *
    1281     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.maxXMLNameLimit</a>
    1282     * @since 3.15.0
    1283     */
    1284    public static final String JDK_XML_MAX_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";
    1285
    1286    /**
    1287     * The System property name {@value}.
    1288     *
    1289     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.overrideDefaultParser</a>
    1290     * @since 3.15.0
    1291     */
    1292    public static final String JDK_XML_OVERRIDE_DEFAULT_PARSER = "jdk.xml.overrideDefaultParser";
    1293
    1294    /**
    1295     * The System property name {@value}.
    1296     *
    1297     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.resetSymbolTable</a>
    1298     * @since 3.15.0
    1299     */
    1300    public static final String JDK_XML_RESET_SYMBOL_TABLE = "jdk.xml.resetSymbolTable";
    1301
    1302    /**
    1303     * The System property name {@value}.
    1304     *
    1305     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.totalEntitySizeLimit</a>
    1306     * @since 3.15.0
    1307     */
    1308    public static final String JDK_XML_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";
    1309
    1310    /**
    1311     * The System property name {@value}.
    1312     *
    1313     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">jdk.xml.xsltcIsStandalone</a>
    1314     * @since 3.15.0
    1315     */
    1316    public static final String JDK_XML_XSLTC_IS_STANDALONE = "jdk.xml.xsltcIsStandalone";
    1317
    1318    /**
    1319     * The System property name {@value}.
    1320     */
    1321    public static final String LINE_SEPARATOR = "line.separator";
    1322
    1323    /**
    1324     * The System property name {@value}.
    1325     *
    1326     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">native.encoding</a>
    1327     * @since 3.15.0
    1328     */
    1329    public static final String NATIVE_ENCODING = "native.encoding";
    1330
    1331    /**
    1332     * The System property name {@value}.
    1333     *
    1334     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">networkaddress.cache.negative.ttl</a>
    1335     * @since 3.15.0
    1336     */
    1337    public static final String NETWORK_ADDRESS_CACHE_NEGATIVE_TTL = "networkaddress.cache.negative.ttl";
    1338
    1339    /**
    1340     * The System property name {@value}.
    1341     *
    1342     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">networkaddress.cache.stale.ttl</a>
    1343     * @since 3.15.0
    1344     */
    1345    public static final String NETWORK_ADDRESS_CACHE_STALE_TTL = "networkaddress.cache.stale.ttl";
    1346
    1347    /**
    1348     * The System property name {@value}.
    1349     *
    1350     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">networkaddress.cache.ttl</a>
    1351     * @since 3.15.0
    1352     */
    1353    public static final String NETWORK_ADDRESS_CACHE_TTL = "networkaddress.cache.ttl";
    1354
    1355    /**
    1356     * The System property name {@value}.
    1357     *
    1358     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">org.jcp.xml.dsig.securevalidation</a>
    1359     * @since 3.15.0
    1360     */
    1361    public static final String ORG_JCP_XML_DSIG_SECURE_VALIDATION = "org.jcp.xml.dsig.securevalidation";
    1362
    1363    /**
    1364     * The System property name {@value}.
    1365     *
    1366     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">org.openjdk.java.util.stream.tripwire</a>
    1367     * @since 3.15.0
    1368     */
    1369    public static final String ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE = "org.openjdk.java.util.stream.tripwire";
    1370
    1371    /**
    1372     * The System property name {@value}.
    1373     */
    1374    public static final String OS_ARCH = "os.arch";
    1375
    1376    /**
    1377     * The System property name {@value}.
    1378     */
    1379    public static final String OS_NAME = "os.name";
    1380
    1381    /**
    1382     * The System property name {@value}.
    1383     */
    1384    public static final String OS_VERSION = "os.version";
    1385
    1386    /**
    1387     * The System property name {@value}.
    1388     */
    1389    public static final String PATH_SEPARATOR = "path.separator";
    1390
    1391    /**
    1392     * The System property name {@value}.
    1393     *
    1394     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1395     * @since 3.15.0
    1396     */
    1397    public static final String SOCKS_PROXY_HOST = "socksProxyHost";
    1398
    1399    /**
    1400     * The System property name {@value}.
    1401     *
    1402     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1403     * @since 3.15.0
    1404     */
    1405    public static final String SOCKS_PROXY_PORT = "socksProxyPort";
    1406
    1407    /**
    1408     * The System property name {@value}.
    1409     *
    1410     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1411     * @since 3.15.0
    1412     */
    1413    public static final String SOCKS_PROXY_VERSION = "socksProxyVersion";
    1414
    1415    /**
    1416     * The System property name {@value}.
    1417     *
    1418     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1419     * @since 3.15.0
    1420     */
    1421    public static final String STDERR_ENCODING = "stderr.encoding";
    1422
    1423    /**
    1424     * The System property name {@value}.
    1425     *
    1426     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1427     * @since 3.15.0
    1428     */
    1429    public static final String STDOUT_ENCODING = "stdout.encoding";
    1430
    1431    /**
    1432     * The System property name {@value}.
    1433     *
    1434     * @see <a href=
    1435     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.drainAmount">sun.net.httpserver.drainAmount</a>
    1436     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1437     * @since 3.15.0
    1438     */
    1439    public static final String SUN_NET_HTTP_SERVER_DRAIN_AMOUNT = "sun.net.httpserver.drainAmount";
    1440
    1441    /**
    1442     * The System property name {@value}.
    1443     *
    1444     * @see <a href=
    1445     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.idleInterval">sun.net.httpserver.idleInterval</a>
    1446     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1447     * @since 3.15.0
    1448     */
    1449    public static final String SUN_NET_HTTP_SERVER_IDLE_INTERVAL = "sun.net.httpserver.idleInterval";
    1450
    1451    /**
    1452     * The System property name {@value}.
    1453     *
    1454     * @see <a href=
    1455     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.maxIdleConnections">sun.net.httpserver.maxIdleConnections</a>
    1456     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1457     * @since 3.15.0
    1458     */
    1459    public static final String SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS = "sun.net.httpserver.maxIdleConnections";
    1460
    1461    /**
    1462     * The System property name {@value}.
    1463     *
    1464     * @see <a href=
    1465     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.maxReqHeaders">sun.net.httpserver.maxReqHeaders</a>
    1466     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1467     * @since 3.15.0
    1468     */
    1469    public static final String SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS = "sun.net.httpserver.maxReqHeaders";
    1470
    1471    /**
    1472     * The System property name {@value}.
    1473     *
    1474     * @see <a href=
    1475     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.maxReqTime">sun.net.httpserver.maxReqTime</a>
    1476     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1477     * @since 3.15.0
    1478     */
    1479    public static final String SUN_NET_HTTP_SERVER_MAX_REQ_TIME = "sun.net.httpserver.maxReqTime";
    1480
    1481    /**
    1482     * The System property name {@value}.
    1483     *
    1484     * @see <a href=
    1485     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.maxRspTime">sun.net.httpserver.maxRspTime</a>
    1486     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1487     * @since 3.15.0
    1488     */
    1489    public static final String SUN_NET_HTTP_SERVER_MAX_RSP_TIME = "sun.net.httpserver.maxRspTime";
    1490
    1491    /**
    1492     * The System property name {@value}.
    1493     *
    1494     * @see <a href=
    1495     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.net.httpserver.nodelay">sun.net.httpserver.nodelay</a>
    1496     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1497     * @since 3.15.0
    1498     */
    1499    public static final String SUN_NET_HTTP_SERVER_NO_DELAY = "sun.net.httpserver.nodelay";
    1500
    1501    /**
    1502     * The System property name {@value}.
    1503     *
    1504     * @see <a href=
    1505     *      "https://docs.oracle.com/en/java/javase/25/docs/api/jdk.httpserver/module-summary.html#sun.security.krb5.principal">sun.security.krb5.principal</a>
    1506     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1507     * @since 3.15.0
    1508     */
    1509    public static final String SUN_SECURITY_KRB5_PRINCIPAL = "sun.security.krb5.principal";
    1510
    1511    /**
    1512     * The System property name {@value}.
    1513     */
    1514    public static final String USER_COUNTRY = "user.country";
    1515
    1516    /**
    1517     * The System property name {@value}.
    1518     */
    1519    public static final String USER_DIR = "user.dir";
    1520
    1521    /**
    1522     * The System property name {@value}.
    1523     *
    1524     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1525     * @since 3.15.0
    1526     */
    1527    public static final String USER_EXTENSIONS = "user.extensions";
    1528
    1529    /**
    1530     * The System property name {@value}.
    1531     */
    1532    public static final String USER_HOME = "user.home";
    1533
    1534    /**
    1535     * The System property name {@value}.
    1536     */
    1537    public static final String USER_LANGUAGE = "user.language";
    1538
    1539    /**
    1540     * The System property name {@value}.
    1541     */
    1542    public static final String USER_NAME = "user.name";
    1543
    1544    /**
    1545     * The System property name {@value}.
    1546     */
    1547    public static final String USER_REGION = "user.region";
    1548
    1549    /**
    1550     * The System property name {@value}.
    1551     *
    1552     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1553     * @since 3.15.0
    1554     */
    1555    public static final String USER_SCRIPT = "user.script";
    1556
    1557    /**
    1558     * The System property name {@value}.
    1559     */
    1560    public static final String USER_TIMEZONE = "user.timezone";
    1561
    1562    /**
    1563     * The System property name {@value}.
    1564     *
    1565     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1566     * @since 3.15.0
    1567     */
    1568    public static final String USER_VARIANT = "user.variant";
    1569
    1570    /**
    1571     * Gets the current value from the system properties map.
    1572     * <p>
    1573     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1574     * </p>
    1575     *
    1576     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1577     * @since 3.15.0
    1578     */
    1579    public static String getAppleAwtEnableTemplateImages() {
    1580        return getProperty(APPLE_AWT_ENABLE_TEMPLATE_IMAGES);
    1581    }
    1582
    1583    /**
    1584     * Gets the current value from the system properties map.
    1585     * <p>
    1586     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1587     * </p>
    1588     *
    1589     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1590     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1591     * @see #AWT_TOOLKIT
    1592     * @deprecated Deprecated without replacement.
    1593     */
    1594    @Deprecated
    1595    public static String getAwtToolkit() {
    1596        return getProperty(AWT_TOOLKIT);
    1597    }
    1598
    1599    /**
    1600     * Gets the current value for the property named {@code "SimpleClassName.Key"} as a {@code boolean}.
    1601     * <p>
    1602     * If a {@link SecurityException} is caught, the return value is {@code null}.
    1603     * </p>
    1604     *
    1605     * @param clazz           The Class to use for the SimpleClassName.
    1606     * @param key             The subkey.
    1607     * @param defaultIfAbsent The default value.
    1608     * @return an int or defaultIfAbsent.
    1609     * @see Class#getSimpleName()
    1610     * @since 3.19.0
    1611     */
    1612    public static boolean getBoolean(final Class<?> clazz, final String key, final BooleanSupplier defaultIfAbsent) {
    1613        return getBoolean(toKey(clazz, key, true), defaultIfAbsent);
    1614    }
    1615
    1616    /**
    1617     * Gets the current value for the property named {@code key} as an {@code boolean}.
    1618     * <p>
    1619     * If a {@link SecurityException} is caught, the return value is {@code null}.
    1620     * </p>
    1621     *
    1622     * @param key             The key.
    1623     * @param defaultIfAbsent The default value.
    1624     * @return an {@code boolean} or defaultIfAbsent.
    1625     */
    1626    public static boolean getBoolean(final String key, final BooleanSupplier defaultIfAbsent) {
    1627        final String str = getProperty(key);
    1628        return str == null ? defaultIfAbsent != null && defaultIfAbsent.getAsBoolean() : Boolean.parseBoolean(str);
    1629    }
    1630
    1631    /**
    1632     * Gets the current value from the system properties map.
    1633     * <p>
    1634     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1635     * </p>
    1636     *
    1637     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1638     * @since 3.15.0
    1639     */
    1640    public static String getComSunJndiLdapObjectTrustSerialData() {
    1641        return getProperty(COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA);
    1642    }
    1643
    1644    /**
    1645     * Gets the current value from the system properties map.
    1646     * <p>
    1647     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1648     * </p>
    1649     *
    1650     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1651     * @since 3.15.0
    1652     */
    1653    public static String getComSunNetHttpServerHttpServerProvider() {
    1654        return getProperty(COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER);
    1655    }
    1656
    1657    /**
    1658     * Gets the current value from the system properties map.
    1659     * <p>
    1660     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1661     * </p>
    1662     * <p>
    1663     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1664     * </p>
    1665     *
    1666     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1667     */
    1668    public static String getFileEncoding() {
    1669        return getProperty(FILE_ENCODING);
    1670    }
    1671
    1672    /**
    1673     * Gets the current value from the system properties map.
    1674     * <p>
    1675     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1676     * </p>
    1677     *
    1678     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1679     */
    1680    public static String getFileSeparator() {
    1681        return getProperty(FILE_SEPARATOR);
    1682    }
    1683
    1684    /**
    1685     * Gets the current value from the system properties map.
    1686     * <p>
    1687     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1688     * </p>
    1689     *
    1690     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1691     * @since 3.15.0
    1692     */
    1693    public static String getFtpNonProxyHost() {
    1694        return getProperty(FTP_NON_PROXY_HOST);
    1695    }
    1696
    1697    /**
    1698     * Gets the current value from the system properties map.
    1699     * <p>
    1700     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1701     * </p>
    1702     *
    1703     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1704     * @since 3.15.0
    1705     */
    1706    public static String getFtpProxyHost() {
    1707        return getProperty(FTP_PROXY_HOST);
    1708    }
    1709
    1710    /**
    1711     * Gets the current value from the system properties map.
    1712     * <p>
    1713     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1714     * </p>
    1715     *
    1716     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1717     * @since 3.15.0
    1718     */
    1719    public static String getFtpProxyPort() {
    1720        return getProperty(FTP_PROXY_PORT);
    1721    }
    1722
    1723    /**
    1724     * Gets the current value from the system properties map.
    1725     * <p>
    1726     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1727     * </p>
    1728     *
    1729     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1730     * @since 3.15.0
    1731     */
    1732    public static String getHttpAgent() {
    1733        return getProperty(HTTP_AGENT);
    1734    }
    1735
    1736    /**
    1737     * Gets the current value from the system properties map.
    1738     * <p>
    1739     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1740     * </p>
    1741     *
    1742     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1743     * @since 3.15.0
    1744     */
    1745    public static String getHttpAuthDigestCnonceRepeat() {
    1746        return getProperty(HTTP_AUTH_DIGEST_CNONCE_REPEAT);
    1747    }
    1748
    1749    /**
    1750     * Gets the current value from the system properties map.
    1751     * <p>
    1752     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1753     * </p>
    1754     *
    1755     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1756     * @since 3.15.0
    1757     */
    1758    public static String getHttpAuthDigestReenabledAlgorithms() {
    1759        return getProperty(HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS);
    1760    }
    1761
    1762    /**
    1763     * Gets the current value from the system properties map.
    1764     * <p>
    1765     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1766     * </p>
    1767     *
    1768     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1769     * @since 3.15.0
    1770     */
    1771    public static String getHttpAuthDigestValidateProxy() {
    1772        return getProperty(HTTP_AUTH_DIGEST_VALIDATE_PROXY);
    1773    }
    1774
    1775    /**
    1776     * Gets the current value from the system properties map.
    1777     * <p>
    1778     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1779     * </p>
    1780     *
    1781     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1782     * @since 3.15.0
    1783     */
    1784    public static String getHttpAuthDigestValidateServer() {
    1785        return getProperty(HTTP_AUTH_DIGEST_VALIDATE_SERVER);
    1786    }
    1787
    1788    /**
    1789     * Gets the current value from the system properties map.
    1790     * <p>
    1791     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1792     * </p>
    1793     *
    1794     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1795     * @since 3.15.0
    1796     */
    1797    public static String getHttpAuthNtlmDomain() {
    1798        return getProperty(HTTP_AUTH_NTLM_DOMAIN);
    1799    }
    1800
    1801    /**
    1802     * Gets the current value from the system properties map.
    1803     * <p>
    1804     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1805     * </p>
    1806     *
    1807     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1808     * @since 3.15.0
    1809     */
    1810    public static String getHttpKeepAlive() {
    1811        return getProperty(HTTP_KEEP_ALIVE);
    1812    }
    1813
    1814    /**
    1815     * Gets the current value from the system properties map.
    1816     * <p>
    1817     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1818     * </p>
    1819     *
    1820     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1821     * @since 3.15.0
    1822     */
    1823    public static String getHttpKeepAliveTimeProxy() {
    1824        return getProperty(HTTP_KEEP_ALIVE_TIME_PROXY);
    1825    }
    1826
    1827    /**
    1828     * Gets the current value from the system properties map.
    1829     * <p>
    1830     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1831     * </p>
    1832     *
    1833     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1834     * @since 3.15.0
    1835     */
    1836    public static String getHttpKeepAliveTimeServer() {
    1837        return getProperty(HTTP_KEEP_ALIVE_TIME_SERVER);
    1838    }
    1839
    1840    /**
    1841     * Gets the current value from the system properties map.
    1842     * <p>
    1843     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1844     * </p>
    1845     *
    1846     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1847     * @since 3.15.0
    1848     */
    1849    public static String getHttpMaxConnections() {
    1850        return getProperty(HTTP_MAX_CONNECTIONS);
    1851    }
    1852
    1853    /**
    1854     * Gets the current value from the system properties map.
    1855     * <p>
    1856     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1857     * </p>
    1858     *
    1859     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1860     * @since 3.15.0
    1861     */
    1862    public static String getHttpMaxRedirects() {
    1863        return getProperty(HTTP_MAX_REDIRECTS);
    1864    }
    1865
    1866    /**
    1867     * Gets the current value from the system properties map.
    1868     * <p>
    1869     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1870     * </p>
    1871     *
    1872     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1873     * @since 3.15.0
    1874     */
    1875    public static String getHttpNonProxyHosts() {
    1876        return getProperty(HTTP_NON_PROXY_HOSTS);
    1877    }
    1878
    1879    /**
    1880     * Gets the current value from the system properties map.
    1881     * <p>
    1882     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1883     * </p>
    1884     *
    1885     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1886     * @since 3.15.0
    1887     */
    1888    public static String getHttpProxyHost() {
    1889        return getProperty(HTTP_PROXY_HOST);
    1890    }
    1891
    1892    /**
    1893     * Gets the current value from the system properties map.
    1894     * <p>
    1895     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1896     * </p>
    1897     *
    1898     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1899     * @since 3.15.0
    1900     */
    1901    public static String getHttpProxyPort() {
    1902        return getProperty(HTTP_PROXY_PORT);
    1903    }
    1904
    1905    /**
    1906     * Gets the current value from the system properties map.
    1907     * <p>
    1908     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1909     * </p>
    1910     *
    1911     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1912     * @since 3.15.0
    1913     */
    1914    public static String getHttpsProxyHost() {
    1915        return getProperty(HTTPS_PROXY_HOST);
    1916    }
    1917
    1918    /**
    1919     * Gets the current value from the system properties map.
    1920     * <p>
    1921     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1922     * </p>
    1923     *
    1924     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1925     * @since 3.15.0
    1926     */
    1927    public static String getHttpsProxyPort() {
    1928        return getProperty(HTTPS_PROXY_PORT);
    1929    }
    1930
    1931    /**
    1932     * Gets the current value for the property named {@code "SimpleClassName.Key"} as an {@code int}.
    1933     * <p>
    1934     * If a {@link SecurityException} is caught, the return value is {@code null}.
    1935     * </p>
    1936     *
    1937     * @param clazz           The Class to use for the SimpleClassName.
    1938     * @param key             The subkey.
    1939     * @param defaultIfAbsent The default value.
    1940     * @return an int or defaultIfAbsent.
    1941     * @see Class#getSimpleName()
    1942     * @since 3.19.0
    1943     */
    1944    public static int getInt(final Class<?> clazz, final String key, final IntSupplier defaultIfAbsent) {
    1945        return getInt(toKey(clazz, key, true), defaultIfAbsent);
    1946    }
    1947
    1948    /**
    1949     * Gets the current value for the property named {@code key} as an {@code int}.
    1950     * <p>
    1951     * If a {@link SecurityException} is caught, the return value is {@code null}.
    1952     * </p>
    1953     *
    1954     * @param key             The key.
    1955     * @param defaultIfAbsent The default value.
    1956     * @return an {@code int} or defaultIfAbsent.
    1957     */
    1958    public static int getInt(final String key, final IntSupplier defaultIfAbsent) {
    1959        final String str = getProperty(key);
    1960        return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsInt() : 0 : Integer.parseInt(str);
    1961    }
    1962
    1963    /**
    1964     * Gets the current value from the system properties map.
    1965     * <p>
    1966     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1967     * </p>
    1968     *
    1969     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1970     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1971     * @see #JAVA_AWT_FONTS
    1972     * @deprecated Deprecated without replacement.
    1973     */
    1974    @Deprecated
    1975    public static String getJavaAwtFonts() {
    1976        return getProperty(JAVA_AWT_FONTS);
    1977    }
    1978
    1979    /**
    1980     * Gets the current value from the system properties map.
    1981     * <p>
    1982     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1983     * </p>
    1984     *
    1985     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    1986     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    1987     * @deprecated Deprecated without replacement.
    1988     */
    1989    @Deprecated
    1990    public static String getJavaAwtGraphicsenv() {
    1991        return getProperty(JAVA_AWT_GRAPHICSENV);
    1992    }
    1993
    1994    /**
    1995     * Gets the current value from the system properties map.
    1996     * <p>
    1997     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1998     * </p>
    1999     *
    2000     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2001     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    2002     * @see #JAVA_AWT_HEADLESS
    2003     * @deprecated Deprecated without replacement.
    2004     */
    2005    @Deprecated
    2006    public static String getJavaAwtHeadless() {
    2007        return getProperty(JAVA_AWT_HEADLESS);
    2008    }
    2009
    2010    /**
    2011     * Gets the current value from the system properties map.
    2012     * <p>
    2013     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2014     * </p>
    2015     *
    2016     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2017     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    2018     * @see #JAVA_AWT_PRINTERJOB
    2019     * @deprecated Deprecated without replacement.
    2020     */
    2021    @Deprecated
    2022    public static String getJavaAwtPrinterjob() {
    2023        return getProperty(JAVA_AWT_PRINTERJOB);
    2024    }
    2025
    2026    /**
    2027     * Gets the current value from the system properties map.
    2028     * <p>
    2029     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2030     * </p>
    2031     *
    2032     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2033     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">java.class.path</a>
    2034     * @see #JAVA_CLASS_PATH
    2035     */
    2036    public static String getJavaClassPath() {
    2037        return getProperty(JAVA_CLASS_PATH);
    2038    }
    2039
    2040    /**
    2041     * Gets the current value from the system properties map.
    2042     * <p>
    2043     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2044     * </p>
    2045     *
    2046     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2047     */
    2048    public static String getJavaClassVersion() {
    2049        return getProperty(JAVA_CLASS_VERSION);
    2050    }
    2051
    2052    /**
    2053     * Gets the current value from the system properties map.
    2054     * <p>
    2055     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2056     * </p>
    2057     *
    2058     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2059     * @see <a href="https://bugs.openjdk.org/browse/JDK-8305998">JDK-8305998</a>
    2060     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    2061     * @deprecated Deprecated without replacement.
    2062     */
    2063    @Deprecated
    2064    public static String getJavaCompiler() {
    2065        return getProperty(JAVA_COMPILER);
    2066    }
    2067
    2068    /**
    2069     * Gets the current value from the system properties map.
    2070     * <p>
    2071     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2072     * </p>
    2073     *
    2074     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2075     * @since 3.15.0
    2076     */
    2077    public static String getJavaContentHandlerPkgs() {
    2078        return getProperty(JAVA_CONTENT_HANDLER_PKGS);
    2079    }
    2080
    2081    /**
    2082     * Gets the current value from the system properties map.
    2083     * <p>
    2084     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2085     * </p>
    2086     *
    2087     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2088     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    2089     * @deprecated Deprecated without replacement.
    2090     */
    2091    @Deprecated
    2092    public static String getJavaEndorsedDirs() {
    2093        return getProperty(JAVA_ENDORSED_DIRS);
    2094    }
    2095
    2096    /**
    2097     * Gets the current value from the system properties map.
    2098     * <p>
    2099     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2100     * </p>
    2101     *
    2102     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2103     * @see <a href="https://docs.oracle.com/en/java/javase/25/docs/api/system-properties.html">System Properties</a>
    2104     * @see #JAVA_EXT_DIRS
    2105     * @deprecated Deprecated without replacement.
    2106     */
    2107    @Deprecated
    2108    public static String getJavaExtDirs() {
    2109        return getProperty(JAVA_EXT_DIRS);
    2110    }
    2111
    2112    /**
    2113     * Gets the current value from the system properties map.
    2114     * <p>
    2115     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2116     * </p>
    2117     *
    2118     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2119     */
    2120    public static String getJavaHome() {
    2121        return getProperty(JAVA_HOME);
    2122    }
    2123
    2124    /**
    2125     * Gets the current value from the system properties map.
    2126     * <p>
    2127     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2128     * </p>
    2129     *
    2130     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2131     */
    2132    public static String getJavaIoTmpdir() {
    2133        return getProperty(JAVA_IO_TMPDIR);
    2134    }
    2135
    2136    /**
    2137     * Gets the current value from the system properties map.
    2138     * <p>
    2139     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2140     * </p>
    2141     *
    2142     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2143     */
    2144    public static String getJavaLibraryPath() {
    2145        return getProperty(JAVA_LIBRARY_PATH);
    2146    }
    2147
    2148    /**
    2149     * Gets the current value from the system properties map.
    2150     * <p>
    2151     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2152     * </p>
    2153     * <p>
    2154     * Java 9 and above.
    2155     * </p>
    2156     *
    2157     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2158     */
    2159    public static String getJavaLocaleProviders() {
    2160        return getProperty(JAVA_LOCALE_PROVIDERS);
    2161    }
    2162
    2163    /**
    2164     * Gets the current value from the system properties map.
    2165     * <p>
    2166     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2167     * </p>
    2168     *
    2169     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2170     * @since 3.15.0
    2171     */
    2172    public static String getJavaLocaleUseOldIsoCodes() {
    2173        return getProperty(JAVA_LOCALE_USE_OLD_ISO_CODES);
    2174    }
    2175
    2176    /**
    2177     * Gets the current value from the system properties map.
    2178     * <p>
    2179     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2180     * </p>
    2181     *
    2182     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2183     * @since 3.15.0
    2184     */
    2185    public static String getJavaNetPreferIpv4Stack() {
    2186        return getProperty(JAVA_NET_PREFER_IPV4_STACK);
    2187    }
    2188
    2189    /**
    2190     * Gets the current value from the system properties map.
    2191     * <p>
    2192     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2193     * </p>
    2194     *
    2195     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2196     * @since 3.15.0
    2197     */
    2198    public static String getJavaNetPreferIpv6Addresses() {
    2199        return getProperty(JAVA_NET_PREFER_IPV6_ADDRESSES);
    2200    }
    2201
    2202    /**
    2203     * Gets the current value from the system properties map.
    2204     * <p>
    2205     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2206     * </p>
    2207     *
    2208     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2209     * @since 3.15.0
    2210     */
    2211    public static String getJavaNetSocksPassword() {
    2212        return getProperty(JAVA_NET_SOCKS_PASSWORD);
    2213    }
    2214
    2215    /**
    2216     * Gets the current value from the system properties map.
    2217     * <p>
    2218     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2219     * </p>
    2220     *
    2221     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2222     * @since 3.15.0
    2223     */
    2224    public static String getJavaNetSocksUserName() {
    2225        return getProperty(JAVA_NET_SOCKS_USER_NAME);
    2226    }
    2227
    2228    /**
    2229     * Gets the current value from the system properties map.
    2230     * <p>
    2231     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2232     * </p>
    2233     *
    2234     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2235     * @since 3.15.0
    2236     */
    2237    public static String getJavaNetUseSystemProxies() {
    2238        return getProperty(JAVA_NET_USE_SYSTEM_PROXIES);
    2239    }
    2240
    2241    /**
    2242     * Gets the current value from the system properties map.
    2243     * <p>
    2244     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2245     * </p>
    2246     *
    2247     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2248     * @since 3.15.0
    2249     */
    2250    public static String getJavaNioChannelsDefaultThreadPoolInitialSize() {
    2251        return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE);
    2252    }
    2253
    2254    /**
    2255     * Gets the current value from the system properties map.
    2256     * <p>
    2257     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2258     * </p>
    2259     *
    2260     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2261     * @since 3.15.0
    2262     */
    2263    public static String getJavaNioChannelsDefaultThreadPoolThreadFactory() {
    2264        return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY);
    2265    }
    2266
    2267    /**
    2268     * Gets the current value from the system properties map.
    2269     * <p>
    2270     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2271     * </p>
    2272     *
    2273     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2274     * @since 3.15.0
    2275     */
    2276    public static String getJavaNioChannelsSpiAsynchronousChannelProvider() {
    2277        return getProperty(JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER);
    2278    }
    2279
    2280    /**
    2281     * Gets the current value from the system properties map.
    2282     * <p>
    2283     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2284     * </p>
    2285     *
    2286     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2287     * @since 3.15.0
    2288     */
    2289    public static String getJavaNioChannelsSpiSelectorProvider() {
    2290        return getProperty(JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER);
    2291    }
    2292
    2293    /**
    2294     * Gets the current value from the system properties map.
    2295     * <p>
    2296     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2297     * </p>
    2298     *
    2299     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2300     * @since 3.15.0
    2301     */
    2302    public static String getJavaNioFileSpiDefaultFileSystemProvider() {
    2303        return getProperty(JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER);
    2304    }
    2305
    2306    /**
    2307     * Gets the current value from the system properties map.
    2308     * <p>
    2309     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2310     * </p>
    2311     *
    2312     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2313     * @since 3.15.0
    2314     */
    2315    public static String getJavaPropertiesDate() {
    2316        return getProperty(JAVA_PROPERTIES_DATE);
    2317    }
    2318
    2319    /**
    2320     * Gets the current value from the system properties map.
    2321     * <p>
    2322     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2323     * </p>
    2324     *
    2325     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2326     * @since 3.15.0
    2327     */
    2328    public static String getJavaProtocolHandlerPkgs() {
    2329        return getProperty(JAVA_PROTOCOL_HANDLER_PKGS);
    2330    }
    2331
    2332    /**
    2333     * Gets the current value from the system properties map.
    2334     * <p>
    2335     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2336     * </p>
    2337     *
    2338     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2339     * @since 3.15.0
    2340     */
    2341    public static String getJavaRmiServerCodebase() {
    2342        return getProperty(JAVA_RMI_SERVER_CODEBASE);
    2343    }
    2344
    2345    /**
    2346     * Gets the current value from the system properties map.
    2347     * <p>
    2348     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2349     * </p>
    2350     *
    2351     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2352     * @since 3.15.0
    2353     */
    2354    public static String getJavaRmiServerHostName() {
    2355        return getProperty(JAVA_RMI_SERVER_HOST_NAME);
    2356    }
    2357
    2358    /**
    2359     * Gets the current value from the system properties map.
    2360     * <p>
    2361     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2362     * </p>
    2363     *
    2364     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2365     * @since 3.15.0
    2366     */
    2367    public static String getJavaRmiServerRandomIds() {
    2368        return getProperty(JAVA_RMI_SERVER_RANDOM_IDS);
    2369    }
    2370
    2371    /**
    2372     * Gets the current value from the system properties map.
    2373     * <p>
    2374     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2375     * </p>
    2376     *
    2377     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2378     * @since 3.15.0
    2379     */
    2380    public static String getJavaRmiServerRmiClassLoaderSpi() {
    2381        return getProperty(JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI);
    2382    }
    2383
    2384    /**
    2385     * Gets the current value from the system properties map.
    2386     * <p>
    2387     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2388     * </p>
    2389     *
    2390     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2391     */
    2392    public static String getJavaRuntimeName() {
    2393        return getProperty(JAVA_RUNTIME_NAME);
    2394    }
    2395
    2396    /**
    2397     * Gets the current value from the system properties map.
    2398     * <p>
    2399     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2400     * </p>
    2401     *
    2402     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2403     */
    2404    public static String getJavaRuntimeVersion() {
    2405        return getProperty(JAVA_RUNTIME_VERSION);
    2406    }
    2407
    2408    /**
    2409     * Gets the current value from the system properties map.
    2410     * <p>
    2411     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2412     * </p>
    2413     *
    2414     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2415     * @since 3.15.0
    2416     */
    2417    public static String getJavaSecurityAuthLoginConfig() {
    2418        return getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG);
    2419    }
    2420
    2421    /**
    2422     * Gets the current value from the system properties map.
    2423     * <p>
    2424     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2425     * </p>
    2426     *
    2427     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2428     * @since 3.15.0
    2429     */
    2430    public static String getJavaSecurityManager() {
    2431        return getProperty(JAVA_SECURITY_MANAGER);
    2432    }
    2433
    2434    /**
    2435     * Gets the current value from the system properties map.
    2436     * <p>
    2437     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2438     * </p>
    2439     *
    2440     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2441     * @since 3.15.0
    2442     */
    2443    public static String getJavaSpecificationMaintenanceVersion() {
    2444        return getProperty(JAVA_SPECIFICATION_MAINTENANCE_VERSION);
    2445    }
    2446
    2447    /**
    2448     * Gets the current value from the system properties map.
    2449     * <p>
    2450     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2451     * </p>
    2452     *
    2453     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2454     */
    2455    public static String getJavaSpecificationName() {
    2456        return getProperty(JAVA_SPECIFICATION_NAME);
    2457    }
    2458
    2459    /**
    2460     * Gets the current value from the system properties map.
    2461     * <p>
    2462     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2463     * </p>
    2464     *
    2465     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2466     */
    2467    public static String getJavaSpecificationVendor() {
    2468        return getProperty(JAVA_SPECIFICATION_VENDOR);
    2469    }
    2470
    2471    /**
    2472     * Gets the current value from the system properties map.
    2473     * <p>
    2474     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2475     * </p>
    2476     *
    2477     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2478     */
    2479    public static String getJavaSpecificationVersion() {
    2480        return getProperty(JAVA_SPECIFICATION_VERSION);
    2481    }
    2482
    2483    /**
    2484     * Gets the current value from the system properties map for {@value #JAVA_SPECIFICATION_VERSION}.
    2485     * <p>
    2486     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2487     * </p>
    2488     *
    2489     * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
    2490     * @return The system property value or {@code defaultValue} if the property is absent or a security problem occurs.
    2491     * @since 3.15.0
    2492     */
    2493    public static String getJavaSpecificationVersion(final String defaultValue) {
    2494        return getProperty(JAVA_SPECIFICATION_VERSION, defaultValue);
    2495    }
    2496
    2497    /**
    2498     * Gets the current value from the system properties map for {@value #JAVA_SYSTEM_CLASS_LOADER}.
    2499     * <p>
    2500     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2501     * </p>
    2502     *
    2503     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2504     * @since 3.15.0
    2505     */
    2506    public static String getJavaSystemClassLoader() {
    2507        return getProperty(JAVA_SYSTEM_CLASS_LOADER);
    2508    }
    2509
    2510    /**
    2511     * Gets the current value from the system properties map for {@value #JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER}.
    2512     * <p>
    2513     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2514     * </p>
    2515     *
    2516     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2517     * @since 3.15.0
    2518     */
    2519    public static String getJavaTimeZoneDefaultZoneRulesProvider() {
    2520        return getProperty(JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER);
    2521    }
    2522
    2523    /**
    2524     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER}.
    2525     * <p>
    2526     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2527     * </p>
    2528     *
    2529     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2530     * @since 3.15.0
    2531     */
    2532    public static String getJavaUtilConcurrentForkJoinPoolCommonExceptionHandler() {
    2533        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER);
    2534    }
    2535
    2536    /**
    2537     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES}.
    2538     * <p>
    2539     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2540     * </p>
    2541     *
    2542     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2543     * @since 3.15.0
    2544     */
    2545    public static String getJavaUtilConcurrentForkJoinPoolCommonMaximumSpares() {
    2546        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES);
    2547    }
    2548
    2549    /**
    2550     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM}.
    2551     * <p>
    2552     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2553     * </p>
    2554     *
    2555     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2556     * @since 3.15.0
    2557     */
    2558    public static String getJavaUtilConcurrentForkJoinPoolCommonParallelism() {
    2559        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM);
    2560    }
    2561
    2562    /**
    2563     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY}.
    2564     * <p>
    2565     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2566     * </p>
    2567     *
    2568     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2569     * @since 3.15.0
    2570     */
    2571    public static String getJavaUtilConcurrentForkJoinPoolCommonThreadFactory() {
    2572        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY);
    2573    }
    2574
    2575    /**
    2576     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CURRENCY_DATA}.
    2577     * <p>
    2578     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2579     * </p>
    2580     *
    2581     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2582     * @since 3.15.0
    2583     */
    2584    public static String getJavaUtilCurrencyData() {
    2585        return getProperty(JAVA_UTIL_CURRENCY_DATA);
    2586    }
    2587
    2588    /**
    2589     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_CONFIG_CLASS}.
    2590     * <p>
    2591     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2592     * </p>
    2593     *
    2594     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2595     * @since 3.15.0
    2596     */
    2597    public static String getJavaUtilLoggingConfigClass() {
    2598        return getProperty(JAVA_UTIL_LOGGING_CONFIG_CLASS);
    2599    }
    2600
    2601    /**
    2602     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_CONFIG_FILE}.
    2603     * <p>
    2604     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2605     * </p>
    2606     *
    2607     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2608     * @since 3.15.0
    2609     */
    2610    public static String getJavaUtilLoggingConfigFile() {
    2611        return getProperty(JAVA_UTIL_LOGGING_CONFIG_FILE);
    2612    }
    2613
    2614    /**
    2615     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT}.
    2616     * <p>
    2617     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2618     * </p>
    2619     *
    2620     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2621     * @since 3.15.0
    2622     */
    2623    public static String getJavaUtilLoggingSimpleFormatterFormat() {
    2624        return getProperty(JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT);
    2625    }
    2626
    2627    /**
    2628     * Gets the current value from the system properties map for {@value #JAVA_UTIL_PREFS_PREFERENCES_FACTORY}.
    2629     * <p>
    2630     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2631     * </p>
    2632     *
    2633     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2634     */
    2635    public static String getJavaUtilPrefsPreferencesFactory() {
    2636        return getProperty(JAVA_UTIL_PREFS_PREFERENCES_FACTORY);
    2637    }
    2638
    2639    /**
    2640     * Gets the current value from the system properties map for {@value #JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING}.
    2641     * <p>
    2642     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2643     * </p>
    2644     *
    2645     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2646     * @since 3.15.0
    2647     */
    2648    public static String getJavaUtilPropertyResourceBundleEncoding() {
    2649        return getProperty(JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING);
    2650    }
    2651
    2652    /**
    2653     * Gets the current value from the system properties map for {@value #JAVA_VENDOR}.
    2654     * <p>
    2655     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2656     * </p>
    2657     *
    2658     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2659     */
    2660    public static String getJavaVendor() {
    2661        return getProperty(JAVA_VENDOR);
    2662    }
    2663
    2664    /**
    2665     * Gets the current value from the system properties map for {@value #JAVA_VENDOR_URL}.
    2666     * <p>
    2667     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2668     * </p>
    2669     *
    2670     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2671     */
    2672    public static String getJavaVendorUrl() {
    2673        return getProperty(JAVA_VENDOR_URL);
    2674    }
    2675
    2676    /**
    2677     * Gets the current value from the system properties map for {@value #JAVA_VENDOR_VERSION}.
    2678     * <p>
    2679     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2680     * </p>
    2681     *
    2682     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2683     * @since 3.15.0
    2684     */
    2685    public static String getJavaVendorVersion() {
    2686        return getProperty(JAVA_VENDOR_VERSION);
    2687    }
    2688
    2689    /**
    2690     * Gets the current value from the system properties map for {@value #JAVA_VERSION}.
    2691     * <p>
    2692     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2693     * </p>
    2694     *
    2695     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2696     */
    2697    public static String getJavaVersion() {
    2698        return getProperty(JAVA_VERSION);
    2699    }
    2700
    2701    /**
    2702     * Gets the current value from the system properties map for {@value #JAVA_VERSION_DATE}.
    2703     * <p>
    2704     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2705     * </p>
    2706     *
    2707     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2708     * @since 3.15.0
    2709     */
    2710    public static String getJavaVersionDate() {
    2711        return getProperty(JAVA_VERSION_DATE);
    2712    }
    2713
    2714    /**
    2715     * Gets the current value from the system properties map for {@value #JAVA_VM_INFO}.
    2716     * <p>
    2717     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2718     * </p>
    2719     *
    2720     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2721     */
    2722    public static String getJavaVmInfo() {
    2723        return getProperty(JAVA_VM_INFO);
    2724    }
    2725
    2726    /**
    2727     * Gets the current value from the system properties map for {@value #JAVA_VM_NAME}.
    2728     * <p>
    2729     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2730     * </p>
    2731     *
    2732     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2733     */
    2734    public static String getJavaVmName() {
    2735        return getProperty(JAVA_VM_NAME);
    2736    }
    2737
    2738    /**
    2739     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_NAME}.
    2740     * <p>
    2741     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2742     * </p>
    2743     *
    2744     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2745     */
    2746    public static String getJavaVmSpecificationName() {
    2747        return getProperty(JAVA_VM_SPECIFICATION_NAME);
    2748    }
    2749
    2750    /**
    2751     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_VENDOR}.
    2752     * <p>
    2753     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2754     * </p>
    2755     *
    2756     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2757     */
    2758    public static String getJavaVmSpecificationVendor() {
    2759        return getProperty(JAVA_VM_SPECIFICATION_VENDOR);
    2760    }
    2761
    2762    /**
    2763     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_VERSION}.
    2764     * <p>
    2765     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2766     * </p>
    2767     *
    2768     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2769     */
    2770    public static String getJavaVmSpecificationVersion() {
    2771        return getProperty(JAVA_VM_SPECIFICATION_VERSION);
    2772    }
    2773
    2774    /**
    2775     * Gets the current value from the system properties map for {@value #JAVA_VM_VENDOR}.
    2776     * <p>
    2777     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2778     * </p>
    2779     *
    2780     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2781     */
    2782    public static String getJavaVmVendor() {
    2783        return getProperty(JAVA_VM_VENDOR);
    2784    }
    2785
    2786    /**
    2787     * Gets the current value from the system properties map for {@value #JAVA_VM_VERSION}.
    2788     * <p>
    2789     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2790     * </p>
    2791     *
    2792     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2793     */
    2794    public static String getJavaVmVersion() {
    2795        return getProperty(JAVA_VM_VERSION);
    2796    }
    2797
    2798    /**
    2799     * Gets the current value from the system properties map for {@value #JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES}.
    2800     * <p>
    2801     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2802     * </p>
    2803     *
    2804     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2805     * @since 3.15.0
    2806     */
    2807    public static String getJavaxAccessibilityAssistiveTechnologies() {
    2808        return getProperty(JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES);
    2809    }
    2810
    2811    /**
    2812     * Gets the current value from the system properties map for {@value #JAVA_XML_CONFIG_FILE}.
    2813     * <p>
    2814     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2815     * </p>
    2816     *
    2817     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2818     * @since 3.15.0
    2819     */
    2820    public static String getJavaXmlConfigFile() {
    2821        return getProperty(JAVA_XML_CONFIG_FILE);
    2822    }
    2823
    2824    /**
    2825     * Gets the current value from the system properties map for {@value #JAVAX_NET_SSL_SESSION_CACHE_SIZE}.
    2826     * <p>
    2827     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2828     * </p>
    2829     *
    2830     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2831     * @since 3.15.0
    2832     */
    2833    public static String getJavaxNetSslSessionCacheSize() {
    2834        return getProperty(JAVAX_NET_SSL_SESSION_CACHE_SIZE);
    2835    }
    2836
    2837    /**
    2838     * Gets the current value from the system properties map for {@value #JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES}.
    2839     * <p>
    2840     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2841     * </p>
    2842     *
    2843     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2844     * @since 3.15.0
    2845     */
    2846    public static String getJavaxRmiSslClientEnabledCipherSuites() {
    2847        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES);
    2848    }
    2849
    2850    /**
    2851     * Gets the current value from the system properties map for {@value #JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS}.
    2852     * <p>
    2853     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2854     * </p>
    2855     *
    2856     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2857     * @since 3.15.0
    2858     */
    2859    public static String getJavaxRmiSslClientEnabledProtocols() {
    2860        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS);
    2861    }
    2862
    2863    /**
    2864     * Gets the current value from the system properties map for {@value #JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY}.
    2865     * <p>
    2866     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2867     * </p>
    2868     *
    2869     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2870     * @since 3.15.0
    2871     */
    2872    public static String getJavaxSecurityAuthUseSubjectCredsOnly() {
    2873        return getProperty(JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY);
    2874    }
    2875
    2876    /**
    2877     * Gets the current value from the system properties map for {@value #JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE}.
    2878     * <p>
    2879     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2880     * </p>
    2881     *
    2882     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2883     * @since 3.15.0
    2884     */
    2885    public static String getJavaxSmartCardIoTerminalFactoryDefaultType() {
    2886        return getProperty(JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE);
    2887    }
    2888
    2889    /**
    2890     * Gets the current value from the system properties map for {@value #JDBC_DRIVERS}.
    2891     * <p>
    2892     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2893     * </p>
    2894     *
    2895     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2896     * @since 3.15.0
    2897     */
    2898    public static String getJdbcDrivers() {
    2899        return getProperty(JDBC_DRIVERS);
    2900    }
    2901
    2902    /**
    2903     * Gets the current value from the system properties map for {@value #JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES}.
    2904     * <p>
    2905     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2906     * </p>
    2907     *
    2908     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2909     * @since 3.15.0
    2910     */
    2911    public static String getJdkHttpAuthProxyingDisabledSchemes() {
    2912        return getProperty(JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES);
    2913    }
    2914
    2915    /**
    2916     * Gets the current value from the system properties map for {@value #JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES}.
    2917     * <p>
    2918     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2919     * </p>
    2920     *
    2921     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2922     * @since 3.15.0
    2923     */
    2924    public static String getJdkHttpAuthTunnelingDisabledSchemes() {
    2925        return getProperty(JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES);
    2926    }
    2927
    2928    /**
    2929     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS}.
    2930     * <p>
    2931     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2932     * </p>
    2933     *
    2934     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2935     * @since 3.15.0
    2936     */
    2937    public static String getJdkHttpClientAllowRestrictedHeaders() {
    2938        return getProperty(JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS);
    2939    }
    2940
    2941    /**
    2942     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT}.
    2943     * <p>
    2944     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2945     * </p>
    2946     *
    2947     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2948     * @since 3.15.0
    2949     */
    2950    public static String getJdkHttpClientAuthRetryLimit() {
    2951        return getProperty(JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT);
    2952    }
    2953
    2954    /**
    2955     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_BUF_SIZE}.
    2956     * <p>
    2957     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2958     * </p>
    2959     *
    2960     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2961     * @since 3.15.0
    2962     */
    2963    public static String getJdkHttpClientBufSize() {
    2964        return getProperty(JDK_HTTP_CLIENT_BUF_SIZE);
    2965    }
    2966
    2967    /**
    2968     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE}.
    2969     * <p>
    2970     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2971     * </p>
    2972     *
    2973     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2974     * @since 3.15.0
    2975     */
    2976    public static String getJdkHttpClientConnectionPoolSize() {
    2977        return getProperty(JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE);
    2978    }
    2979
    2980    /**
    2981     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE}.
    2982     * <p>
    2983     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2984     * </p>
    2985     *
    2986     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    2987     * @since 3.15.0
    2988     */
    2989    public static String getJdkHttpClientConnectionWindowSize() {
    2990        return getProperty(JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE);
    2991    }
    2992
    2993    /**
    2994     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT}.
    2995     * <p>
    2996     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2997     * </p>
    2998     *
    2999     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3000     * @since 3.15.0
    3001     */
    3002    public static String getJdkHttpClientDisableRetryConnect() {
    3003        return getProperty(JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT);
    3004    }
    3005
    3006    /**
    3007     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY}.
    3008     * <p>
    3009     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3010     * </p>
    3011     *
    3012     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3013     * @since 3.15.0
    3014     */
    3015    public static String getJdkHttpClientEnableAllMethodRetry() {
    3016        return getProperty(JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY);
    3017    }
    3018
    3019    /**
    3020     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ENABLE_PUSH}.
    3021     * <p>
    3022     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3023     * </p>
    3024     *
    3025     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3026     * @since 3.15.0
    3027     */
    3028    public static String getJdkHttpClientEnablePush() {
    3029        return getProperty(JDK_HTTP_CLIENT_ENABLE_PUSH);
    3030    }
    3031
    3032    /**
    3033     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE}.
    3034     * <p>
    3035     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3036     * </p>
    3037     *
    3038     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3039     * @since 3.15.0
    3040     */
    3041    public static String getJdkHttpClientHpackMaxHeaderTableSize() {
    3042        return getProperty(JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE);
    3043    }
    3044
    3045    /**
    3046     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_HTTP_CLIENT_LOG}.
    3047     * <p>
    3048     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3049     * </p>
    3050     *
    3051     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3052     * @since 3.15.0
    3053     */
    3054    public static String getJdkHttpClientHttpClientLog() {
    3055        return getProperty(JDK_HTTP_CLIENT_HTTP_CLIENT_LOG);
    3056    }
    3057
    3058    /**
    3059     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT}.
    3060     * <p>
    3061     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3062     * </p>
    3063     *
    3064     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3065     * @since 3.15.0
    3066     */
    3067    public static String getJdkHttpClientKeepAliveTimeout() {
    3068        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT);
    3069    }
    3070
    3071    /**
    3072     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2}.
    3073     * <p>
    3074     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3075     * </p>
    3076     *
    3077     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3078     * @since 3.15.0
    3079     */
    3080    public static String getJdkHttpClientKeepAliveTimeoutH2() {
    3081        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2);
    3082    }
    3083
    3084    /**
    3085     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_MAX_FRAME_SIZE}.
    3086     * <p>
    3087     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3088     * </p>
    3089     *
    3090     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3091     * @since 3.15.0
    3092     */
    3093    public static String getJdkHttpClientMaxFrameSize() {
    3094        return getProperty(JDK_HTTP_CLIENT_MAX_FRAME_SIZE);
    3095    }
    3096
    3097    /**
    3098     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_MAX_STREAMS}.
    3099     * <p>
    3100     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3101     * </p>
    3102     *
    3103     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3104     * @since 3.15.0
    3105     */
    3106    public static String getJdkHttpClientMaxStreams() {
    3107        return getProperty(JDK_HTTP_CLIENT_MAX_STREAMS);
    3108    }
    3109
    3110    /**
    3111     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE}.
    3112     * <p>
    3113     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3114     * </p>
    3115     *
    3116     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3117     * @since 3.15.0
    3118     */
    3119    public static String getJdkHttpClientReceiveBufferSize() {
    3120        return getProperty(JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE);
    3121    }
    3122
    3123    /**
    3124     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT}.
    3125     * <p>
    3126     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3127     * </p>
    3128     *
    3129     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3130     * @since 3.15.0
    3131     */
    3132    public static String getJdkHttpClientRedirectsRetryLimit() {
    3133        return getProperty(JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT);
    3134    }
    3135
    3136    /**
    3137     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_SEND_BUFFER_SIZE}.
    3138     * <p>
    3139     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3140     * </p>
    3141     *
    3142     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3143     * @since 3.15.0
    3144     */
    3145    public static String getJdkHttpClientSendBufferSize() {
    3146        return getProperty(JDK_HTTP_CLIENT_SEND_BUFFER_SIZE);
    3147    }
    3148
    3149    /**
    3150     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE}.
    3151     * <p>
    3152     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3153     * </p>
    3154     *
    3155     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3156     * @since 3.15.0
    3157     */
    3158    public static String getJdkHttpClientWebSocketWriteBufferSize() {
    3159        return getProperty(JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE);
    3160    }
    3161
    3162    /**
    3163     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_WINDOW_SIZE}.
    3164     * <p>
    3165     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3166     * </p>
    3167     *
    3168     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3169     * @since 3.15.0
    3170     */
    3171    public static String getJdkHttpClientWindowSize() {
    3172        return getProperty(JDK_HTTP_CLIENT_WINDOW_SIZE);
    3173    }
    3174
    3175    /**
    3176     * Gets the current value from the system properties map for {@value #JDK_HTTP_SERVER_MAX_CONNECTIONS}.
    3177     * <p>
    3178     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3179     * </p>
    3180     *
    3181     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3182     * @since 3.15.0
    3183     */
    3184    public static String getJdkHttpServerMaxConnections() {
    3185        return getProperty(JDK_HTTP_SERVER_MAX_CONNECTIONS);
    3186    }
    3187
    3188    /**
    3189     * Gets the current value from the system properties map for {@value #JDK_HTTPS_NEGOTIATE_CBT}.
    3190     * <p>
    3191     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3192     * </p>
    3193     *
    3194     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3195     * @since 3.15.0
    3196     */
    3197    public static String getJdkHttpsNegotiateCbt() {
    3198        return getProperty(JDK_HTTPS_NEGOTIATE_CBT);
    3199    }
    3200
    3201    /**
    3202     * Gets the current value from the system properties map for {@value #JDK_INCLUDE_IN_EXCEPTIONS}.
    3203     * <p>
    3204     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3205     * </p>
    3206     *
    3207     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3208     * @since 3.15.0
    3209     */
    3210    public static String getJdkIncludeInExceptions() {
    3211        return getProperty(JDK_INCLUDE_IN_EXCEPTIONS);
    3212    }
    3213
    3214    /**
    3215     * Gets the current value from the system properties map for {@value #JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION}.
    3216     * <p>
    3217     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3218     * </p>
    3219     *
    3220     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3221     * @since 3.15.0
    3222     */
    3223    public static String getJdkInternalHttpClientDisableHostNameVerification() {
    3224        return getProperty(JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION);
    3225    }
    3226
    3227    /**
    3228     * Gets the current value from the system properties map for {@value #JDK_IO_PERMISSIONS_USE_CANONICAL_PATH}.
    3229     * <p>
    3230     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3231     * </p>
    3232     *
    3233     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3234     * @since 3.15.0
    3235     */
    3236    public static String getJdkIoPermissionsUseCanonicalPath() {
    3237        return getProperty(JDK_IO_PERMISSIONS_USE_CANONICAL_PATH);
    3238    }
    3239
    3240    /**
    3241     * Gets the current value from the system properties map for {@value #JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER}.
    3242     * <p>
    3243     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3244     * </p>
    3245     *
    3246     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3247     * @since 3.15.0
    3248     */
    3249    public static String getJdkJndiLdapObjectFactoriesFilter() {
    3250        return getProperty(JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER);
    3251    }
    3252
    3253    /**
    3254     * Gets the current value from the system properties map for {@value #JDK_JNDI_OBJECT_FACTORIES_FILTER}.
    3255     * <p>
    3256     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3257     * </p>
    3258     *
    3259     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3260     * @since 3.15.0
    3261     */
    3262    public static String getJdkJndiObjectFactoriesFilter() {
    3263        return getProperty(JDK_JNDI_OBJECT_FACTORIES_FILTER);
    3264    }
    3265
    3266    /**
    3267     * Gets the current value from the system properties map for {@value #JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER}.
    3268     * <p>
    3269     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3270     * </p>
    3271     *
    3272     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3273     * @since 3.15.0
    3274     */
    3275    public static String getJdkJndiRmiObjectFactoriesFilter() {
    3276        return getProperty(JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER);
    3277    }
    3278
    3279    /**
    3280     * Gets the current value from the system properties map for {@value #JDK_MODULE_MAIN}.
    3281     * <p>
    3282     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3283     * </p>
    3284     *
    3285     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3286     * @since 3.15.0
    3287     */
    3288    public static String getJdkModuleMain() {
    3289        return getProperty(JDK_MODULE_MAIN);
    3290    }
    3291
    3292    /**
    3293     * Gets the current value from the system properties map for {@value #JDK_MODULE_MAIN_CLASS}.
    3294     * <p>
    3295     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3296     * </p>
    3297     *
    3298     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3299     * @since 3.15.0
    3300     */
    3301    public static String getJdkModuleMainClass() {
    3302        return getProperty(JDK_MODULE_MAIN_CLASS);
    3303    }
    3304
    3305    /**
    3306     * Gets the current value from the system properties map for {@value #JDK_MODULE_PATH}.
    3307     * <p>
    3308     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3309     * </p>
    3310     *
    3311     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3312     * @since 3.15.0
    3313     */
    3314    public static String getJdkModulePath() {
    3315        return getProperty(JDK_MODULE_PATH);
    3316    }
    3317
    3318    /**
    3319     * Gets the current value from the system properties map for {@value #JDK_MODULE_UPGRADE_PATH}.
    3320     * <p>
    3321     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3322     * </p>
    3323     *
    3324     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3325     * @since 3.15.0
    3326     */
    3327    public static String getJdkModuleUpgradePath() {
    3328        return getProperty(JDK_MODULE_UPGRADE_PATH);
    3329    }
    3330
    3331    /**
    3332     * Gets the current value from the system properties map for {@value #JDK_NET_UNIX_DOMAIN_TMPDIR}.
    3333     * <p>
    3334     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3335     * </p>
    3336     *
    3337     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3338     * @since 3.15.0
    3339     */
    3340    public static String getJdkNetUnixDomainTmpDir() {
    3341        return getProperty(JDK_NET_UNIX_DOMAIN_TMPDIR);
    3342    }
    3343
    3344    /**
    3345     * Gets the current value from the system properties map for {@value #JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES}.
    3346     * <p>
    3347     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3348     * </p>
    3349     *
    3350     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3351     * @since 3.15.0
    3352     */
    3353    public static String getJdkNetUrlClassPathShowIgnoredClassPathEntries() {
    3354        return getProperty(JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES);
    3355    }
    3356
    3357    /**
    3358     * Gets the current value from the system properties map for {@value #JDK_SERIAL_FILTER}.
    3359     * <p>
    3360     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3361     * </p>
    3362     *
    3363     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3364     * @since 3.15.0
    3365     */
    3366    public static String getJdkSerialFilter() {
    3367        return getProperty(JDK_SERIAL_FILTER);
    3368    }
    3369
    3370    /**
    3371     * Gets the current value from the system properties map for {@value #JDK_SERIAL_FILTER_FACTORY}.
    3372     * <p>
    3373     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3374     * </p>
    3375     *
    3376     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3377     * @since 3.15.0
    3378     */
    3379    public static String getJdkSerialFilterFactory() {
    3380        return getProperty(JDK_SERIAL_FILTER_FACTORY);
    3381    }
    3382
    3383    /**
    3384     * Gets the current value from the system properties map for {@value #JDK_TLS_CLIENT_SIGNATURE_SCHEMES}.
    3385     * <p>
    3386     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3387     * </p>
    3388     *
    3389     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3390     * @since 3.15.0
    3391     */
    3392    public static String getJdkTlsClientSignatureSchemes() {
    3393        return getProperty(JDK_TLS_CLIENT_SIGNATURE_SCHEMES);
    3394    }
    3395
    3396    /**
    3397     * Gets the current value from the system properties map for {@value #JDK_TLS_NAMED_GROUPS}.
    3398     * <p>
    3399     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3400     * </p>
    3401     *
    3402     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3403     * @since 3.15.0
    3404     */
    3405    public static String getJdkTlsNamedGroups() {
    3406        return getProperty(JDK_TLS_NAMED_GROUPS);
    3407    }
    3408
    3409    /**
    3410     * Gets the current value from the system properties map for {@value #JDK_TLS_SERVER_SIGNATURE_SCHEMES}.
    3411     * <p>
    3412     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3413     * </p>
    3414     *
    3415     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3416     * @since 3.15.0
    3417     */
    3418    public static String getJdkTlsServerSignatureSchemes() {
    3419        return getProperty(JDK_TLS_SERVER_SIGNATURE_SCHEMES);
    3420    }
    3421
    3422    /**
    3423     * Gets the current value from the system properties map for {@value #JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE}.
    3424     * <p>
    3425     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3426     * </p>
    3427     *
    3428     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3429     * @since 3.15.0
    3430     */
    3431    public static String getJdkVirtualThreadSchedulerMaxPoolSize() {
    3432        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE);
    3433    }
    3434
    3435    /**
    3436     * Gets the current value from the system properties map for {@value #JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM}.
    3437     * <p>
    3438     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3439     * </p>
    3440     *
    3441     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3442     * @since 3.15.0
    3443     */
    3444    public static String getJdkVirtualThreadSchedulerParallelism() {
    3445        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM);
    3446    }
    3447
    3448    /**
    3449     * Gets the current value from the system properties map for {@value #JDK_XML_CDATA_CHUNK_SIZE}.
    3450     * <p>
    3451     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3452     * </p>
    3453     *
    3454     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3455     * @since 3.15.0
    3456     */
    3457    public static String getJdkXmlCdataChunkSize() {
    3458        return getProperty(JDK_XML_CDATA_CHUNK_SIZE);
    3459    }
    3460
    3461    /**
    3462     * Gets the current value from the system properties map for {@value #JDK_XML_DTD_SUPPORT}.
    3463     * <p>
    3464     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3465     * </p>
    3466     *
    3467     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3468     * @since 3.15.0
    3469     */
    3470    public static String getJdkXmlDtdSupport() {
    3471        return getProperty(JDK_XML_DTD_SUPPORT);
    3472    }
    3473
    3474    /**
    3475     * Gets the current value from the system properties map for {@value #JDK_XML_ELEMENT_ATTRIBUTE_LIMIT}.
    3476     * <p>
    3477     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3478     * </p>
    3479     *
    3480     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3481     * @since 3.15.0
    3482     */
    3483    public static String getJdkXmlElementAttributeLimit() {
    3484        return getProperty(JDK_XML_ELEMENT_ATTRIBUTE_LIMIT);
    3485    }
    3486
    3487    /**
    3488     * Gets the current value from the system properties map for {@value #JDK_XML_ENABLE_EXTENSION_FUNCTIONS}.
    3489     * <p>
    3490     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3491     * </p>
    3492     *
    3493     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3494     * @since 3.15.0
    3495     */
    3496    public static String getJdkXmlEnableExtensionFunctions() {
    3497        return getProperty(JDK_XML_ENABLE_EXTENSION_FUNCTIONS);
    3498    }
    3499
    3500    /**
    3501     * Gets the current value from the system properties map for {@value #JDK_XML_ENTITY_EXPANSION_LIMIT}.
    3502     * <p>
    3503     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3504     * </p>
    3505     *
    3506     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3507     * @since 3.15.0
    3508     */
    3509    public static String getJdkXmlEntityExpansionLimit() {
    3510        return getProperty(JDK_XML_ENTITY_EXPANSION_LIMIT);
    3511    }
    3512
    3513    /**
    3514     * Gets the current value from the system properties map for {@value #JDK_XML_ENTITY_REPLACEMENT_LIMIT}.
    3515     * <p>
    3516     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3517     * </p>
    3518     *
    3519     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3520     * @since 3.15.0
    3521     */
    3522    public static String getJdkXmlEntityReplacementLimit() {
    3523        return getProperty(JDK_XML_ENTITY_REPLACEMENT_LIMIT);
    3524    }
    3525
    3526    /**
    3527     * Gets the current value from the system properties map for {@value #JDK_XML_IS_STANDALONE}.
    3528     * <p>
    3529     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3530     * </p>
    3531     *
    3532     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3533     * @since 3.15.0
    3534     */
    3535    public static String getJdkXmlIsStandalone() {
    3536        return getProperty(JDK_XML_IS_STANDALONE);
    3537    }
    3538
    3539    /**
    3540     * Gets the current value from the system properties map for {@value #JDK_XML_JDK_CATALOG_RESOLVE}.
    3541     * <p>
    3542     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3543     * </p>
    3544     *
    3545     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3546     * @since 3.15.0
    3547     */
    3548    public static String getJdkXmlJdkCatalogResolve() {
    3549        return getProperty(JDK_XML_JDK_CATALOG_RESOLVE);
    3550    }
    3551
    3552    /**
    3553     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_ELEMENT_DEPTH}.
    3554     * <p>
    3555     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3556     * </p>
    3557     *
    3558     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3559     * @since 3.15.0
    3560     */
    3561    public static String getJdkXmlMaxElementDepth() {
    3562        return getProperty(JDK_XML_MAX_ELEMENT_DEPTH);
    3563    }
    3564
    3565    /**
    3566     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT}.
    3567     * <p>
    3568     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3569     * </p>
    3570     *
    3571     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3572     * @since 3.15.0
    3573     */
    3574    public static String getJdkXmlMaxGeneralEntitySizeLimit() {
    3575        return getProperty(JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT);
    3576    }
    3577
    3578    /**
    3579     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_OCCUR_LIMIT}.
    3580     * <p>
    3581     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3582     * </p>
    3583     *
    3584     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3585     * @since 3.15.0
    3586     */
    3587    public static String getJdkXmlMaxOccurLimit() {
    3588        return getProperty(JDK_XML_MAX_OCCUR_LIMIT);
    3589    }
    3590
    3591    /**
    3592     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT}.
    3593     * <p>
    3594     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3595     * </p>
    3596     *
    3597     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3598     * @since 3.15.0
    3599     */
    3600    public static String getJdkXmlMaxParameterEntitySizeLimit() {
    3601        return getProperty(JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT);
    3602    }
    3603
    3604    /**
    3605     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_XML_NAME_LIMIT}.
    3606     * <p>
    3607     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3608     * </p>
    3609     *
    3610     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3611     * @since 3.15.0
    3612     */
    3613    public static String getJdkXmlMaxXmlNameLimit() {
    3614        return getProperty(JDK_XML_MAX_XML_NAME_LIMIT);
    3615    }
    3616
    3617    /**
    3618     * Gets the current value from the system properties map for {@value #JDK_XML_OVERRIDE_DEFAULT_PARSER}.
    3619     * <p>
    3620     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3621     * </p>
    3622     *
    3623     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3624     * @since 3.15.0
    3625     */
    3626    public static String getJdkXmlOverrideDefaultParser() {
    3627        return getProperty(JDK_XML_OVERRIDE_DEFAULT_PARSER);
    3628    }
    3629
    3630    /**
    3631     * Gets the current value from the system properties map for {@value #JDK_XML_RESET_SYMBOL_TABLE}.
    3632     * <p>
    3633     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3634     * </p>
    3635     *
    3636     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3637     * @since 3.15.0
    3638     */
    3639    public static String getJdkXmlResetSymbolTable() {
    3640        return getProperty(JDK_XML_RESET_SYMBOL_TABLE);
    3641    }
    3642
    3643    /**
    3644     * Gets the current value from the system properties map for {@value #JDK_XML_TOTAL_ENTITY_SIZE_LIMIT}.
    3645     * <p>
    3646     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3647     * </p>
    3648     *
    3649     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3650     * @since 3.15.0
    3651     */
    3652    public static String getJdkXmlTotalEntitySizeLimit() {
    3653        return getProperty(JDK_XML_TOTAL_ENTITY_SIZE_LIMIT);
    3654    }
    3655
    3656    /**
    3657     * Gets the current value from the system properties map for {@value #JDK_XML_XSLTC_IS_STANDALONE}.
    3658     * <p>
    3659     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3660     * </p>
    3661     *
    3662     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3663     * @since 3.15.0
    3664     */
    3665    public static String getJdkXmlXsltcIsStandalone() {
    3666        return getProperty(JDK_XML_XSLTC_IS_STANDALONE);
    3667    }
    3668
    3669    /**
    3670     * Gets the current value from the system properties map for {@value #LINE_SEPARATOR}.
    3671     * <p>
    3672     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3673     * </p>
    3674     *
    3675     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3676     */
    3677    public static String getLineSeparator() {
    3678        return getProperty(LINE_SEPARATOR);
    3679    }
    3680
    3681    /**
    3682     * Gets the current value from the system properties map for {@value #LINE_SEPARATOR}.
    3683     * <p>
    3684     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3685     * </p>
    3686     *
    3687     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
    3688     * @return the current value from the system properties map.
    3689     * @since 3.15.0
    3690     */
    3691    public static String getLineSeparator(final Supplier<String> defaultIfAbsent) {
    3692        return getProperty(LINE_SEPARATOR, defaultIfAbsent);
    3693    }
    3694
    3695    /**
    3696     * Gets the current value for the property named {@code "SimpleClassName.Key"} as a {@code long}.
    3697     * <p>
    3698     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3699     * </p>
    3700     *
    3701     * @param clazz           The Class to use for the SimpleClassName.
    3702     * @param key             The subkey.
    3703     * @param defaultIfAbsent The default value.
    3704     * @return a long or defaultIfAbsent.
    3705     * @see Class#getSimpleName()
    3706     * @since 3.19.0
    3707     */
    3708    public static long getLong(final Class<?> clazz, final String key, final LongSupplier defaultIfAbsent) {
    3709        return getLong(toKey(clazz, key, true), defaultIfAbsent);
    3710    }
    3711
    3712    /**
    3713     * Gets the current value for the property named {@code key} as a {@code long}.
    3714     * <p>
    3715     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3716     * </p>
    3717     *
    3718     * @param key             The key.
    3719     * @param defaultIfAbsent The default value.
    3720     * @return a {@code long} or defaultIfAbsent.
    3721     */
    3722    public static long getLong(final String key, final LongSupplier defaultIfAbsent) {
    3723        final String str = getProperty(key);
    3724        return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsLong() : 0 : Long.parseLong(str);
    3725    }
    3726
    3727    /**
    3728     * Gets the current value from the system properties map for {@value #NATIVE_ENCODING}.
    3729     * <p>
    3730     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3731     * </p>
    3732     *
    3733     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3734     * @since 3.15.0
    3735     */
    3736    public static String getNativeEncoding() {
    3737        return getProperty(NATIVE_ENCODING);
    3738    }
    3739
    3740    /**
    3741     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_NEGATIVE_TTL}.
    3742     * <p>
    3743     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3744     * </p>
    3745     *
    3746     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3747     * @since 3.15.0
    3748     */
    3749    public static String getNetworkAddressCacheNegativeTtl() {
    3750        return getProperty(NETWORK_ADDRESS_CACHE_NEGATIVE_TTL);
    3751    }
    3752
    3753    /**
    3754     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_STALE_TTL}.
    3755     * <p>
    3756     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3757     * </p>
    3758     *
    3759     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3760     * @since 3.15.0
    3761     */
    3762    public static String getNetworkAddressCacheStaleTtl() {
    3763        return getProperty(NETWORK_ADDRESS_CACHE_STALE_TTL);
    3764    }
    3765
    3766    /**
    3767     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_TTL}.
    3768     * <p>
    3769     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3770     * </p>
    3771     *
    3772     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3773     * @since 3.15.0
    3774     */
    3775    public static String getNetworkAddressCacheTtl() {
    3776        return getProperty(NETWORK_ADDRESS_CACHE_TTL);
    3777    }
    3778
    3779    /**
    3780     * Gets the current value from the system properties map for {@value #ORG_JCP_XML_DSIG_SECURE_VALIDATION}.
    3781     * <p>
    3782     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3783     * </p>
    3784     *
    3785     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3786     * @since 3.15.0
    3787     */
    3788    public static String getOrgJcpXmlDsigSecureValidation() {
    3789        return getProperty(ORG_JCP_XML_DSIG_SECURE_VALIDATION);
    3790    }
    3791
    3792    /**
    3793     * Gets the current value from the system properties map for {@value #ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE}.
    3794     * <p>
    3795     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3796     * </p>
    3797     *
    3798     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3799     * @since 3.15.0
    3800     */
    3801    public static String getOrgOpenJdkJavaUtilStreamTripwire() {
    3802        return getProperty(ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE);
    3803    }
    3804
    3805    /**
    3806     * Gets the current value from the system properties map for {@value #OS_ARCH}.
    3807     * <p>
    3808     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3809     * </p>
    3810     *
    3811     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3812     */
    3813    public static String getOsArch() {
    3814        return getProperty(OS_ARCH);
    3815    }
    3816
    3817    /**
    3818     * Gets the current value from the system properties map for {@value #OS_NAME}.
    3819     * <p>
    3820     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3821     * </p>
    3822     *
    3823     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3824     */
    3825    public static String getOsName() {
    3826        return getProperty(OS_NAME);
    3827    }
    3828
    3829    /**
    3830     * Gets the current value from the system properties map for {@value #OS_VERSION}.
    3831     * <p>
    3832     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3833     * </p>
    3834     *
    3835     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3836     */
    3837    public static String getOsVersion() {
    3838        return getProperty(OS_VERSION);
    3839    }
    3840
    3841    /**
    3842     * Gets the current value from the system properties map for {@value #PATH_SEPARATOR}.
    3843     * <p>
    3844     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3845     * </p>
    3846     *
    3847     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3848     */
    3849    public static String getPathSeparator() {
    3850        return getProperty(PATH_SEPARATOR);
    3851    }
    3852
    3853    /**
    3854     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3855     * <p>
    3856     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3857     * </p>
    3858     *
    3859     * @param property The system property name.
    3860     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3861     */
    3862    public static String getProperty(final String property) {
    3863        return getProperty(property, Suppliers.nul());
    3864    }
    3865
    3866    /**
    3867     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3868     * <p>
    3869     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3870     * </p>
    3871     *
    3872     * @param property        the system property name.
    3873     * @param defaultIfAbsent use this value when the property is empty or throws SecurityException.
    3874     * @return the system property value or {@code null} if a security problem occurs.
    3875     */
    3876    static String getProperty(final String property, final String defaultIfAbsent) {
    3877        return getProperty(property, () -> defaultIfAbsent);
    3878    }
    3879
    3880    /**
    3881     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3882     * <p>
    3883     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3884     * </p>
    3885     *
    3886     * @param property        the system property name.
    3887     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
    3888     * @return the system property value or {@code null} if a security problem occurs.
    3889     */
    3890    static String getProperty(final String property, final Supplier<String> defaultIfAbsent) {
    3891        try {
    3892            if (StringUtils.isEmpty(property)) {
    3893                return Suppliers.get(defaultIfAbsent);
    3894            }
    3895            return StringUtils.getIfEmpty(System.getProperty(property), defaultIfAbsent);
    3896        } catch (final SecurityException ignore) {
    3897            // We are not allowed to look at this property.
    3898            //
    3899            // System.err.println("Caught a SecurityException reading the system property '" + property
    3900            // + "'; the SystemUtils property value will default to null.");
    3901            return defaultIfAbsent.get();
    3902        }
    3903    }
    3904
    3905    /**
    3906     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_HOST}.
    3907     * <p>
    3908     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3909     * </p>
    3910     *
    3911     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3912     * @since 3.15.0
    3913     */
    3914    public static String getSocksProxyHost() {
    3915        return getProperty(SOCKS_PROXY_HOST);
    3916    }
    3917
    3918    /**
    3919     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_PORT}.
    3920     * <p>
    3921     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3922     * </p>
    3923     *
    3924     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3925     * @since 3.15.0
    3926     */
    3927    public static String getSocksProxyPort() {
    3928        return getProperty(SOCKS_PROXY_PORT);
    3929    }
    3930
    3931    /**
    3932     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_VERSION}.
    3933     * <p>
    3934     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3935     * </p>
    3936     *
    3937     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3938     * @since 3.15.0
    3939     */
    3940    public static String getSocksProxyVersion() {
    3941        return getProperty(SOCKS_PROXY_VERSION);
    3942    }
    3943
    3944    /**
    3945     * Gets the current value from the system properties map for {@value #STDERR_ENCODING}.
    3946     * <p>
    3947     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3948     * </p>
    3949     *
    3950     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3951     * @since 3.15.0
    3952     */
    3953    public static String getStdErrEncoding() {
    3954        return getProperty(STDERR_ENCODING);
    3955    }
    3956
    3957    /**
    3958     * Gets the current value from the system properties map for {@value #STDOUT_ENCODING}.
    3959     * <p>
    3960     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3961     * </p>
    3962     *
    3963     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3964     * @since 3.15.0
    3965     */
    3966    public static String getStdOutEncoding() {
    3967        return getProperty(STDOUT_ENCODING);
    3968    }
    3969
    3970    /**
    3971     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_DRAIN_AMOUNT}.
    3972     * <p>
    3973     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3974     * </p>
    3975     *
    3976     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3977     * @since 3.15.0
    3978     */
    3979    public static String getSunNetHttpServerDrainAmount() {
    3980        return getProperty(SUN_NET_HTTP_SERVER_DRAIN_AMOUNT);
    3981    }
    3982
    3983    /**
    3984     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_IDLE_INTERVAL}.
    3985     * <p>
    3986     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3987     * </p>
    3988     *
    3989     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    3990     * @since 3.15.0
    3991     */
    3992    public static String getSunNetHttpServerIdleInterval() {
    3993        return getProperty(SUN_NET_HTTP_SERVER_IDLE_INTERVAL);
    3994    }
    3995
    3996    /**
    3997     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS}.
    3998     * <p>
    3999     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4000     * </p>
    4001     *
    4002     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4003     * @since 3.15.0
    4004     */
    4005    public static String getSunNetHttpServerMaxIdleConnections() {
    4006        return getProperty(SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS);
    4007    }
    4008
    4009    /**
    4010     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS}.
    4011     * <p>
    4012     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4013     * </p>
    4014     *
    4015     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4016     * @since 3.15.0
    4017     */
    4018    public static String getSunNetHttpServerMaxReqHeaders() {
    4019        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS);
    4020    }
    4021
    4022    /**
    4023     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_REQ_TIME}.
    4024     * <p>
    4025     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4026     * </p>
    4027     *
    4028     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4029     * @since 3.15.0
    4030     */
    4031    public static String getSunNetHttpServerMaxReqTime() {
    4032        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_TIME);
    4033    }
    4034
    4035    /**
    4036     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_RSP_TIME}.
    4037     * <p>
    4038     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4039     * </p>
    4040     *
    4041     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4042     * @since 3.15.0
    4043     */
    4044    public static String getSunNetHttpServerMaxRspTime() {
    4045        return getProperty(SUN_NET_HTTP_SERVER_MAX_RSP_TIME);
    4046    }
    4047
    4048    /**
    4049     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_NO_DELAY}.
    4050     * <p>
    4051     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4052     * </p>
    4053     *
    4054     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4055     * @since 3.15.0
    4056     */
    4057    public static String getSunNetHttpServerNoDelay() {
    4058        return getProperty(SUN_NET_HTTP_SERVER_NO_DELAY);
    4059    }
    4060
    4061    /**
    4062     * Gets the current value from the system properties map for {@value #SUN_SECURITY_KRB5_PRINCIPAL}.
    4063     * <p>
    4064     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4065     * </p>
    4066     *
    4067     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4068     * @since 3.15.0
    4069     */
    4070    public static String getSunSecurityKrb5Principal() {
    4071        return getProperty(SUN_SECURITY_KRB5_PRINCIPAL);
    4072    }
    4073
    4074    /**
    4075     * Gets the current value from the system properties map for {@value #USER_COUNTRY}.
    4076     * <p>
    4077     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4078     * </p>
    4079     *
    4080     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4081     */
    4082    public static String getUserCountry() {
    4083        return getProperty(USER_COUNTRY);
    4084    }
    4085
    4086    /**
    4087     * Gets the current value from the system properties map for {@value #USER_DIR}.
    4088     * <p>
    4089     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4090     * </p>
    4091     *
    4092     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4093     */
    4094    public static String getUserDir() {
    4095        return getProperty(USER_DIR);
    4096    }
    4097
    4098    /**
    4099     * Gets the current value from the system properties map for {@value #USER_EXTENSIONS}.
    4100     * <p>
    4101     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4102     * </p>
    4103     *
    4104     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4105     * @since 3.15.0
    4106     */
    4107    public static String getUserExtensions() {
    4108        return getProperty(USER_EXTENSIONS);
    4109    }
    4110
    4111    /**
    4112     * Gets the current value from the system properties map for {@value #USER_HOME}.
    4113     * <p>
    4114     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4115     * </p>
    4116     *
    4117     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4118     */
    4119    public static String getUserHome() {
    4120        return getProperty(USER_HOME);
    4121    }
    4122
    4123    /**
    4124     * Gets the current value from the system properties map for {@value #USER_LANGUAGE}.
    4125     * <p>
    4126     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4127     * </p>
    4128     *
    4129     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4130     */
    4131    public static String getUserLanguage() {
    4132        return getProperty(USER_LANGUAGE);
    4133    }
    4134
    4135    /**
    4136     * Gets the current value from the system properties map for {@value #USER_NAME}.
    4137     * <p>
    4138     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4139     * </p>
    4140     *
    4141     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4142     */
    4143    public static String getUserName() {
    4144        return getProperty(USER_NAME);
    4145    }
    4146
    4147    /**
    4148     * Gets the current value from the system properties map for {@value #USER_NAME}.
    4149     * <p>
    4150     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4151     * </p>
    4152     *
    4153     * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
    4154     * @return The system property value or {@code defaultValue} if the property is absent or a security problem occurs.
    4155     * @since 3.15.0
    4156     */
    4157    public static String getUserName(final String defaultValue) {
    4158        return getProperty(USER_NAME, defaultValue);
    4159    }
    4160
    4161    /**
    4162     * Gets the current value from the system properties map for {@value #USER_REGION}.
    4163     * <p>
    4164     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4165     * </p>
    4166     *
    4167     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4168     * @since 3.15.0
    4169     */
    4170    public static String getUserRegion() {
    4171        return getProperty(USER_REGION);
    4172    }
    4173
    4174    /**
    4175     * Gets the current value from the system properties map for {@value #USER_SCRIPT}.
    4176     * <p>
    4177     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4178     * </p>
    4179     *
    4180     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4181     * @since 3.15.0
    4182     */
    4183    public static String getUserScript() {
    4184        return getProperty(USER_SCRIPT);
    4185    }
    4186
    4187    /**
    4188     * Gets the current value from the system properties map for {@value #USER_TIMEZONE}.
    4189     * <p>
    4190     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4191     * </p>
    4192     *
    4193     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4194     */
    4195    public static String getUserTimezone() {
    4196        return getProperty(USER_TIMEZONE);
    4197    }
    4198
    4199    /**
    4200     * Gets the current value from the system properties map for {@value #USER_VARIANT}.
    4201     * <p>
    4202     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4203     * </p>
    4204     *
    4205     * @return The system property value or {@code null} if the property is absent or a security problem occurs.
    4206     * @since 3.15.0
    4207     */
    4208    public static String getUserVariant() {
    4209        return getProperty(USER_VARIANT);
    4210    }
    4211
    4212    /**
    4213     * Tests whether the given property is set.
    4214     * <p>
    4215     * Short-hand for {@code getProperty(property) != null}.
    4216     * </p>
    4217     * <p>
    4218     * If a {@link SecurityException} is caught, the return value is {@code false}.
    4219     * </p>
    4220     *
    4221     * @param property the system property name.
    4222     * @return whether the given property is set.
    4223     * @since 3.18.0
    4224     */
    4225    public static boolean isPropertySet(final String property) {
    4226        return getProperty(property) != null;
    4227    }
    4228
    4229    private static String toKey(final Class<?> clazz, final String key, final boolean simpleKey) {
    4230        return ClassUtils.getName(clazz, StringUtils.EMPTY, simpleKey) + "." + key;
    4231    }
    4232
    4233    /**
    4234     * Make private in 4.0.
    4235     *
    4236     * @deprecated TODO Make private in 4.0.
    4237     */
    4238    @Deprecated
    4239    public SystemProperties() {
    4240        // empty
    4241    }
    4242}