SystemProperties.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */

  17. package org.apache.commons.lang3;

  18. import java.util.function.BooleanSupplier;
  19. import java.util.function.IntSupplier;
  20. import java.util.function.LongSupplier;
  21. import java.util.function.Supplier;

  22. import org.apache.commons.lang3.function.Suppliers;

  23. /**
  24.  * Accesses current system property names and values.
  25.  *
  26.  * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  27.  * @since 3.13.0
  28.  */
  29. public final class SystemProperties {

  30.     /**
  31.      * The System property name {@value}.
  32.      *
  33.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.desktop/java/awt/TrayIcon.html#apple.awt.enableTemplateImages">apple.awt.enableTemplateImages</a>
  34.      * @since 3.15.0
  35.      */
  36.     public static final String APPLE_AWT_ENABLE_TEMPLATE_IMAGES = "apple.awt.enableTemplateImages";

  37.     /**
  38.      * The System property name {@value}.
  39.      * <p>
  40.      * Not in Java 17 and 21 (Javadoc).
  41.      * </p>
  42.      *
  43.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  44.      */
  45.     public static final String AWT_TOOLKIT = "awt.toolkit";

  46.     /**
  47.      * The System property name {@value}.
  48.      *
  49.      * @see <a href=
  50.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.naming/module-summary.html#com.sun.jndi.ldap.object.trustSerialData">com.sun.jndi.ldap.object.trustSerialData</a>
  51.      * @since 3.15.0
  52.      */
  53.     public static final String COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA = "com.sun.jndi.ldap.object.trustSerialData";

  54.     /**
  55.      * The System property name {@value}.
  56.      *
  57.      * @see <a href=
  58.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/jdk.httpserver/com/sun/net/httpserver/spi/HttpServerProvider.html#com.sun.net.httpserver.HttpServerProvider">com.sun.net.httpserver.HttpServerProvider</a>
  59.      * @since 3.15.0
  60.      */
  61.     public static final String COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER = "com.sun.net.httpserver.HttpServerProvider";

  62.     /**
  63.      * The System property name {@value}.
  64.      */
  65.     public static final String FILE_ENCODING = "file.encoding";

  66.     /**
  67.      * The System property name {@value}.
  68.      */
  69.     public static final String FILE_SEPARATOR = "file.separator";

  70.     /**
  71.      * The System property name {@value}.
  72.      *
  73.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.nonProxyHosts">ftp.nonProxyHosts</a>
  74.      * @since 3.15.0
  75.      */
  76.     public static final String FTP_NON_PROXY_HOST = "ftp.nonProxyHosts";

  77.     /**
  78.      * The System property name {@value}.
  79.      *
  80.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyHost">ftp.proxyHost</a>
  81.      * @since 3.15.0
  82.      */
  83.     public static final String FTP_PROXY_HOST = "ftp.proxyHost";

  84.     /**
  85.      * The System property name {@value}.
  86.      *
  87.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyPort">ftp.proxyPort</a>
  88.      * @since 3.15.0
  89.      */
  90.     public static final String FTP_PROXY_PORT = "ftp.proxyPort";

  91.     /**
  92.      * The System property name {@value}.
  93.      *
  94.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.agent">http.agent</a>
  95.      * @since 3.15.0
  96.      */
  97.     public static final String HTTP_AGENT = "http.agent";

  98.     /**
  99.      * The System property name {@value}.
  100.      *
  101.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#auth.digest.cnonceRepeat">auth.digest.cnonceRepeat</a>
  102.      * @since 3.15.0
  103.      */
  104.     public static final String HTTP_AUTH_DIGEST_CNONCE_REPEAT = "http.auth.digest.cnonceRepeat";

  105.     /**
  106.      * The System property name {@value}.
  107.      *
  108.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#reEnabledAlgorithms">http.auth.digest.reEnabledAlgorithms</a>
  109.      * @since 3.15.0
  110.      */
  111.     public static final String HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS = "http.auth.digest.reEnabledAlgorithms";

  112.     /**
  113.      * The System property name {@value}.
  114.      *
  115.      * @see <a href=
  116.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateProxy">http.auth.digest.validateProxy</a>
  117.      * @since 3.15.0
  118.      */
  119.     public static final String HTTP_AUTH_DIGEST_VALIDATE_PROXY = "http.auth.digest.validateProxy";

  120.     /**
  121.      * The System property name {@value}.
  122.      *
  123.      * @see <a href=
  124.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateServer">http.auth.digest.validateServer</a>
  125.      * @since 3.15.0
  126.      */
  127.     public static final String HTTP_AUTH_DIGEST_VALIDATE_SERVER = "http.auth.digest.validateServer";

  128.     /**
  129.      * The System property name {@value}.
  130.      *
  131.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.ntlm.domain">http.auth.ntlm.domain</a>
  132.      * @since 3.15.0
  133.      */
  134.     public static final String HTTP_AUTH_NTLM_DOMAIN = "http.auth.ntlm.domain";

  135.     /**
  136.      * The System property name {@value}.
  137.      *
  138.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive">http.keepAlive</a>
  139.      * @since 3.15.0
  140.      */
  141.     public static final String HTTP_KEEP_ALIVE = "http.keepAlive";

  142.     /**
  143.      * The System property name {@value}.
  144.      *
  145.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.proxy">http.keepAlive.time.proxy</a>
  146.      * @since 3.15.0
  147.      */
  148.     public static final String HTTP_KEEP_ALIVE_TIME_PROXY = "http.keepAlive.time.proxy";

  149.     /**
  150.      * The System property name {@value}.
  151.      *
  152.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.server">http.keepAlive.time.server</a>
  153.      * @since 3.15.0
  154.      */
  155.     public static final String HTTP_KEEP_ALIVE_TIME_SERVER = "http.keepAlive.time.server";

  156.     /**
  157.      * The System property name {@value}.
  158.      *
  159.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxConnections">http.maxConnections</a>
  160.      * @since 3.15.0
  161.      */
  162.     public static final String HTTP_MAX_CONNECTIONS = "http.maxConnections";

  163.     /**
  164.      * The System property name {@value}.
  165.      *
  166.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxRedirects">http.maxRedirects</a>
  167.      * @since 3.15.0
  168.      */
  169.     public static final String HTTP_MAX_REDIRECTS = "http.maxRedirects";

  170.     /**
  171.      * The System property name {@value}.
  172.      *
  173.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.nonProxyHosts">http.nonProxyHosts</a>
  174.      * @since 3.15.0
  175.      */
  176.     public static final String HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts";

  177.     /**
  178.      * The System property name {@value}.
  179.      *
  180.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyHost">http.proxyHost</a>
  181.      * @since 3.15.0
  182.      */
  183.     public static final String HTTP_PROXY_HOST = "http.proxyHost";

  184.     /**
  185.      * The System property name {@value}.
  186.      *
  187.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyPort">http.proxyPort</a>
  188.      * @since 3.15.0
  189.      */
  190.     public static final String HTTP_PROXY_PORT = "http.proxyPort";

  191.     /**
  192.      * The System property name {@value}.
  193.      *
  194.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyHost">https.proxyHost</a>
  195.      * @since 3.15.0
  196.      */
  197.     public static final String HTTPS_PROXY_HOST = "https.proxyHost";

  198.     /**
  199.      * The System property name {@value}.
  200.      *
  201.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyPort">https.proxyPort</a>
  202.      * @since 3.15.0
  203.      */
  204.     public static final String HTTPS_PROXY_PORT = "https.proxyPort";

  205.     /**
  206.      * The System property name {@value}.
  207.      * <p>
  208.      * Not in Java 17 and 21 (Javadoc).
  209.      * </p>
  210.      *
  211.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.fonts</a>
  212.      */
  213.     public static final String JAVA_AWT_FONTS = "java.awt.fonts";

  214.     /**
  215.      * The System property name {@value}.
  216.      * <p>
  217.      * Not in Java 17 and 21 (Javadoc).
  218.      * </p>
  219.      *
  220.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.graphicsenv</a>
  221.      */
  222.     public static final String JAVA_AWT_GRAPHICSENV = "java.awt.graphicsenv";

  223.     /**
  224.      * The System property name {@value}.
  225.      * <p>
  226.      * Not in Java 17 and 21 (Javadoc).
  227.      * </p>
  228.      *
  229.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.headless</a>
  230.      */
  231.     public static final String JAVA_AWT_HEADLESS = "java.awt.headless";

  232.     /**
  233.      * The System property name {@value}.
  234.      * <p>
  235.      * Not in Java 17 and 21 (Javadoc).
  236.      * </p>
  237.      *
  238.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.printerjob</a>
  239.      */
  240.     public static final String JAVA_AWT_PRINTERJOB = "java.awt.printerjob";

  241.     /**
  242.      * The System property name {@value}.
  243.      */
  244.     public static final String JAVA_CLASS_PATH = "java.class.path";

  245.     /**
  246.      * The System property name {@value}.
  247.      */
  248.     public static final String JAVA_CLASS_VERSION = "java.class.version";

  249.     /**
  250.      * The System property name {@value}.
  251.      * <p>
  252.      * Not in Java 21. Last seen in Java 17.
  253.      * </p>
  254.      */
  255.     public static final String JAVA_COMPILER = "java.compiler";

  256.     /**
  257.      * The System property name {@value}.
  258.      *
  259.      * @see <a href=
  260.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/ContentHandler.html#java.content.handler.pkgs">java.content.handler.pkgs</a>
  261.      * @since 3.15.0
  262.      */
  263.     public static final String JAVA_CONTENT_HANDLER_PKGS = "java.content.handler.pkgs";

  264.     /**
  265.      * The System property name {@value}.
  266.      * <p>
  267.      * Not in Java 17 and 21 (Javadoc).
  268.      * </p>
  269.      */
  270.     public static final String JAVA_ENDORSED_DIRS = "java.endorsed.dirs";

  271.     /**
  272.      * The System property name {@value}.
  273.      * <p>
  274.      * Not in Java 17 and 21 (Javadoc).
  275.      * </p>
  276.      */
  277.     public static final String JAVA_EXT_DIRS = "java.ext.dirs";

  278.     /**
  279.      * The System property name {@value}.
  280.      */
  281.     public static final String JAVA_HOME = "java.home";

  282.     /**
  283.      * The System property name {@value}.
  284.      */
  285.     public static final String JAVA_IO_TMPDIR = "java.io.tmpdir";

  286.     /**
  287.      * The System property name {@value}.
  288.      */
  289.     public static final String JAVA_LIBRARY_PATH = "java.library.path";

  290.     /**
  291.      * The System property name {@value}.
  292.      */
  293.     public static final String JAVA_LOCALE_PROVIDERS = "java.locale.providers";

  294.     /**
  295.      * The System property name {@value}.
  296.      *
  297.      * @see <a href=
  298.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Locale.html#java.locale.useOldISOCodes">java.locale.useOldISOCodes</a>
  299.      * @since 3.15.0
  300.      */
  301.     public static final String JAVA_LOCALE_USE_OLD_ISO_CODES = "java.locale.useOldISOCodes";

  302.     /**
  303.      * The System property name {@value}.
  304.      *
  305.      * @see <a href=
  306.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv4Stack">java.net.preferIPv4Stack</a>
  307.      * @since 3.15.0
  308.      */
  309.     public static final String JAVA_NET_PREFER_IPV4_STACK = "java.net.preferIPv4Stack";

  310.     /**
  311.      * The System property name {@value}.
  312.      *
  313.      * @see <a href=
  314.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv6Addresses">java.net.preferIPv6Addresses</a>
  315.      * @since 3.15.0
  316.      */
  317.     public static final String JAVA_NET_PREFER_IPV6_ADDRESSES = "java.net.preferIPv6Addresses";

  318.     /**
  319.      * The System property name {@value}.
  320.      *
  321.      * @see <a href=
  322.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.password">java.net.socks.password</a>
  323.      * @since 3.15.0
  324.      */
  325.     public static final String JAVA_NET_SOCKS_PASSWORD = "java.net.socks.password";

  326.     /**
  327.      * The System property name {@value}.
  328.      *
  329.      * @see <a href=
  330.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.username">java.net.socks.username</a>
  331.      * @since 3.15.0
  332.      */
  333.     public static final String JAVA_NET_SOCKS_USER_NAME = "java.net.socks.username";

  334.     /**
  335.      * The System property name {@value}.
  336.      *
  337.      * @see <a href=
  338.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.useSystemProxies">java.net.useSystemProxies</a>
  339.      * @since 3.15.0
  340.      */
  341.     public static final String JAVA_NET_USE_SYSTEM_PROXIES = "java.net.useSystemProxies";

  342.     /**
  343.      * The System property name {@value}.
  344.      *
  345.      * @see <a href=
  346.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
  347.      * @since 3.15.0
  348.      */
  349.     public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE = "java.nio.channels.DefaultThreadPool.initialSize";

  350.     /**
  351.      * The System property name {@value}.
  352.      *
  353.      * @see <a href=
  354.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.threadFactory">java.nio.channels.DefaultThreadPool.threadFactory</a>
  355.      * @since 3.15.0
  356.      */
  357.     public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY = "java.nio.channels.DefaultThreadPool.threadFactory";

  358.     /**
  359.      * The System property name {@value}.
  360.      *
  361.      * @see <a href=
  362.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
  363.      * @since 3.15.0
  364.      */
  365.     public static final String JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER = "java.nio.channels.spi.AsynchronousChannelProvider";

  366.     /**
  367.      * The System property name {@value}.
  368.      *
  369.      * @see <a href=
  370.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/spi/SelectorProvider.html#java.nio.channels.spi.SelectorProvider">java.nio.channels.spi.SelectorProvider</a>
  371.      * @since 3.15.0
  372.      */
  373.     public static final String JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER = "java.nio.channels.spi.SelectorProvider";

  374.     /**
  375.      * The System property name {@value}.
  376.      *
  377.      * @see <a href=
  378.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/spi/FileSystemProvider.html#java.nio.file.spi.DefaultFileSystemProvider">java.nio.file.spi.DefaultFileSystemProvider</a>
  379.      * @since 3.15.0
  380.      */
  381.     public static final String JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER = "java.nio.file.spi.DefaultFileSystemProvider";

  382.     /**
  383.      * The System property name {@value}.
  384.      *
  385.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Properties.html#java.properties.date">java.properties.date</a>
  386.      * @since 3.15.0
  387.      */
  388.     public static final String JAVA_PROPERTIES_DATE = "java.properties.date";

  389.     /**
  390.      * The System property name {@value}.
  391.      *
  392.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/URL.html#java.protocol.handler.pkgs">java.protocol.handler.pkgs</a>
  393.      * @since 3.15.0
  394.      */
  395.     public static final String JAVA_PROTOCOL_HANDLER_PKGS = "java.protocol.handler.pkgs";

  396.     /**
  397.      * The System property name {@value}.
  398.      *
  399.      * @see <a href=
  400.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.codebase">java.rmi.server.codebase</a>
  401.      * @since 3.15.0
  402.      */
  403.     public static final String JAVA_RMI_SERVER_CODEBASE = "java.rmi.server.codebase";

  404.     /**
  405.      * The System property name {@value}.
  406.      *
  407.      * @see <a href=
  408.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html#java.rmi.server.hostname">java.rmi.server.hostname</a>
  409.      * @since 3.15.0
  410.      */
  411.     public static final String JAVA_RMI_SERVER_HOST_NAME = "java.rmi.server.hostname";

  412.     /**
  413.      * The System property name {@value}.
  414.      *
  415.      * @see <a href=
  416.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/ObjID.html#java.rmi.server.randomIDs">java.rmi.server.randomIDs</a>
  417.      * @since 3.15.0
  418.      */
  419.     public static final String JAVA_RMI_SERVER_RANDOM_IDS = "java.rmi.server.randomIDs";

  420.     /**
  421.      * The System property name {@value}.
  422.      *
  423.      * @see <a href=
  424.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.RMIClassLoaderSpi">java.rmi.server.RMIClassLoaderSpi</a>
  425.      * @since 3.15.0
  426.      */
  427.     public static final String JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI = "java.rmi.server.RMIClassLoaderSpi";

  428.     /**
  429.      * The System property name {@value}.
  430.      */
  431.     public static final String JAVA_RUNTIME_NAME = "java.runtime.name";

  432.     /**
  433.      * The System property name {@value}.
  434.      */
  435.     public static final String JAVA_RUNTIME_VERSION = "java.runtime.version";

  436.     /**
  437.      * The System property name {@value}.
  438.      *
  439.      * @see <a href=
  440.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/jdk.security.auth/com/sun/security/auth/login/ConfigFile.html#java.security.auth.login.config">java.security.auth.login.config</a>
  441.      * @since 3.15.0
  442.      */
  443.     public static final String JAVA_SECURITY_AUTH_LOGIN_CONFIG = "java.security.auth.login.config";

  444.     /**
  445.      * The System property name {@value}.
  446.      *
  447.      * @see <a href=
  448.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/SecurityManager.html#java.security.manager">java.security.manager</a>
  449.      * @since 3.15.0
  450.      */
  451.     public static final String JAVA_SECURITY_MANAGER = "java.security.manager";

  452.     /**
  453.      * The System property name {@value}.
  454.      *
  455.      * @see <a href=
  456.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.specification.maintenance.version">java.specification.maintenance.version</a>
  457.      * @since 3.15.0
  458.      */
  459.     public static final String JAVA_SPECIFICATION_MAINTENANCE_VERSION = "java.specification.maintenance.version";

  460.     /**
  461.      * The System property name {@value}.
  462.      */
  463.     public static final String JAVA_SPECIFICATION_NAME = "java.specification.name";

  464.     /**
  465.      * The System property name {@value}.
  466.      */
  467.     public static final String JAVA_SPECIFICATION_VENDOR = "java.specification.vendor";

  468.     /**
  469.      * The System property name {@value}.
  470.      */
  471.     public static final String JAVA_SPECIFICATION_VERSION = "java.specification.version";

  472.     /**
  473.      * The System property name {@value}.
  474.      *
  475.      * @see <a href=
  476.      *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ClassLoader.html#java.system.class.loader">java.system.class.loader</a>
  477.      * @since 3.15.0
  478.      */
  479.     public static final String JAVA_SYSTEM_CLASS_LOADER = "java.system.class.loader";

  480.     /**
  481.      * The System property name {@value}.
  482.      *
  483.      * @see <a href=
  484.      *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/zone/ZoneRulesProvider.html#java.time.zone.DefaultZoneRulesProvider">java.time.zone.DefaultZoneRulesProvider</a>
  485.      * @since 3.15.0
  486.      */
  487.     public static final String JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER = "java.time.zone.DefaultZoneRulesProvider";

  488.     /**
  489.      * The System property name {@value}.
  490.      *
  491.      * @see <a href=
  492.      *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.exceptionHandler">java.util.concurrent.ForkJoinPool.common.exceptionHandler</a>
  493.      * @since 3.15.0
  494.      */
  495.     public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER = "java.util.concurrent.ForkJoinPool.common.exceptionHandler";

  496.     /**
  497.      * The System property name {@value}.
  498.      *
  499.      * @see <a href=
  500.      *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.maximumSpares">java.util.concurrent.ForkJoinPool.common.maximumSpares</a>
  501.      * @since 3.15.0
  502.      */
  503.     public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES = "java.util.concurrent.ForkJoinPool.common.maximumSpares";

  504.     /**
  505.      * The System property name {@value}.
  506.      *
  507.      * @see <a href=
  508.      *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.parallelism">java.util.concurrent.ForkJoinPool.common.parallelism</a>
  509.      * @since 3.15.0
  510.      */
  511.     public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM = "java.util.concurrent.ForkJoinPool.common.parallelism";

  512.     /**
  513.      * The System property name {@value}.
  514.      *
  515.      * @see <a href=
  516.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.threadFactory">java.util.concurrent.ForkJoinPool.common.threadFactory</a>
  517.      * @since 3.15.0
  518.      */
  519.     public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY = "java.util.concurrent.ForkJoinPool.common.threadFactory";

  520.     /**
  521.      * The System property name {@value}.
  522.      *
  523.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Currency.html#java.util.currency.data">java.util.currency.data</a>
  524.      * @since 3.15.0
  525.      */
  526.     public static final String JAVA_UTIL_CURRENCY_DATA = "java.util.currency.data";

  527.     /**
  528.      * The System property name {@value}.
  529.      *
  530.      * @see <a href=
  531.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.class">java.util.logging.config.class</a>
  532.      * @since 3.15.0
  533.      */
  534.     public static final String JAVA_UTIL_LOGGING_CONFIG_CLASS = "java.util.logging.config.class";

  535.     /**
  536.      * The System property name {@value}.
  537.      *
  538.      * @see <a href=
  539.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.file">java.util.logging.config.file</a>
  540.      * @since 3.15.0
  541.      */
  542.     public static final String JAVA_UTIL_LOGGING_CONFIG_FILE = "java.util.logging.config.file";

  543.     /**
  544.      * The System property name {@value}.
  545.      *
  546.      * @see <a href=
  547.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/SimpleFormatter.html#java.util.logging.SimpleFormatter.format">java.util.logging.SimpleFormatter.format</a>
  548.      * @since 3.15.0
  549.      */
  550.     public static final String JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT = "java.util.logging.simpleformatter.format";

  551.     /**
  552.      * The System property name {@value}.
  553.      *
  554.      * @see <a href=
  555.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.prefs/java/util/prefs/Preferences.html#java.util.prefs.PreferencesFactory">java.util.prefs.PreferencesFactory</a>
  556.      */
  557.     public static final String JAVA_UTIL_PREFS_PREFERENCES_FACTORY = "java.util.prefs.PreferencesFactory";

  558.     /**
  559.      * The System property name {@value}.
  560.      *
  561.      * @see <a href=
  562.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/PropertyResourceBundle.html#java.util.PropertyResourceBundle.encoding">java.util.PropertyResourceBundle.encoding</a>
  563.      * @since 3.15.0
  564.      */
  565.     public static final String JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING = "java.util.PropertyResourceBundle.encoding";

  566.     /**
  567.      * The System property name {@value}.
  568.      */
  569.     public static final String JAVA_VENDOR = "java.vendor";

  570.     /**
  571.      * The System property name {@value}.
  572.      */
  573.     public static final String JAVA_VENDOR_URL = "java.vendor.url";

  574.     /**
  575.      * The System property name {@value}.
  576.      *
  577.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.vendor.version">java.vendor.version</a>
  578.      * @since 3.15.0
  579.      */
  580.     public static final String JAVA_VENDOR_VERSION = "java.vendor.version";

  581.     /**
  582.      * The System property name {@value}.
  583.      */
  584.     public static final String JAVA_VERSION = "java.version";

  585.     /**
  586.      * The System property name {@value}.
  587.      *
  588.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.version.date">java.version.date</a>
  589.      * @since 3.15.0
  590.      */
  591.     public static final String JAVA_VERSION_DATE = "java.version.date";

  592.     /**
  593.      * The System property name {@value}.
  594.      */
  595.     public static final String JAVA_VM_INFO = "java.vm.info";

  596.     /**
  597.      * The System property name {@value}.
  598.      */
  599.     public static final String JAVA_VM_NAME = "java.vm.name";

  600.     /**
  601.      * The System property name {@value}.
  602.      */
  603.     public static final String JAVA_VM_SPECIFICATION_NAME = "java.vm.specification.name";

  604.     /**
  605.      * The System property name {@value}.
  606.      */
  607.     public static final String JAVA_VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor";

  608.     /**
  609.      * The System property name {@value}.
  610.      */
  611.     public static final String JAVA_VM_SPECIFICATION_VERSION = "java.vm.specification.version";

  612.     /**
  613.      * The System property name {@value}.
  614.      */
  615.     public static final String JAVA_VM_VENDOR = "java.vm.vendor";

  616.     /**
  617.      * The System property name {@value}.
  618.      */
  619.     public static final String JAVA_VM_VERSION = "java.vm.version";

  620.     /**
  621.      * The System property name {@value}.
  622.      *
  623.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.xml/module-summary.html#java.xml.config.file">java.xml</a>
  624.      * @since 3.15.0
  625.      */
  626.     public static final String JAVA_XML_CONFIG_FILE = "java.xml.config.file";

  627.     /**
  628.      * The System property name {@value}.
  629.      *
  630.      * @see <a href=
  631.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.desktop/java/awt/Toolkit.html#javax.accessibility.assistive_technologies">javax.accessibility.assistive_technologies</a>
  632.      * @since 3.15.0
  633.      */
  634.     public static final String JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES = "javax.accessibility.assistive_technologies";

  635.     /**
  636.      * The System property name {@value}.
  637.      *
  638.      * @see <a href=
  639.      *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/javax/net/ssl/SSLSessionContext.html#javax.net.ssl.sessionCacheSize">javax.net.ssl.sessionCacheSize</a>
  640.      * @since 3.15.0
  641.      */
  642.     public static final String JAVAX_NET_SSL_SESSION_CACHE_SIZE = "javax.net.ssl.sessionCacheSize";

  643.     /**
  644.      * The System property name {@value}.
  645.      *
  646.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledCipherSuites">javax.rmi.ssl.client.enabledCipherSuites</a>
  647.      * @since 3.15.0
  648.      */
  649.     public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES = "javax.rmi.ssl.client.enabledCipherSuites";

  650.     /**
  651.      * The System property name {@value}.
  652.      *
  653.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledProtocols">javax.rmi.ssl.client.enabledProtocols</a>
  654.      * @since 3.15.0
  655.      */
  656.     public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS = "javax.rmi.ssl.client.enabledProtocols";

  657.     /**
  658.      * The System property name {@value}.
  659.      *
  660.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.security.jgss/org/ietf/jgss/package-summary.html#javax.security.auth.useSubjectCredsOnly">javax.security.auth.useSubjectCredsOnly</a>
  661.      * @since 3.15.0
  662.      */
  663.     public static final String JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY = "javax.security.auth.useSubjectCredsOnly";

  664.     /**
  665.      * The System property name {@value}.
  666.      *
  667.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.smartcardio/javax/smartcardio/TerminalFactory.html#javax.smartcardio.TerminalFactory.DefaultType">javax.smartcardio.TerminalFactory.DefaultType</a>
  668.      * @since 3.15.0
  669.      */
  670.     public static final String JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE = "javax.smartcardio.TerminalFactory.DefaultType";

  671.     /**
  672.      * The System property name {@value}.
  673.      *
  674.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.sql/java/sql/DriverManager.html#jdbc.drivers">jdbc.drivers</a>
  675.      * @since 3.15.0
  676.      */
  677.     public static final String JDBC_DRIVERS = "jdbc.drivers";

  678.     /**
  679.      * The System property name {@value}.
  680.      *
  681.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.http.auth.proxying.disabledSchemes</a>
  682.      * @since 3.15.0
  683.      */
  684.     public static final String JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES = "jdk.http.auth.proxying.disabledSchemes";

  685.     /**
  686.      * The System property name {@value}.
  687.      *
  688.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.http.auth.tunneling.disabledSchemes</a>
  689.      * @since 3.15.0
  690.      */
  691.     public static final String JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES = "jdk.http.auth.tunneling.disabledSchemes";

  692.     /**
  693.      * The System property name {@value}.
  694.      *
  695.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.allowRestrictedHeaders</a>
  696.      * @since 3.15.0
  697.      */
  698.     public static final String JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS = "jdk.httpclient.allowRestrictedHeaders";

  699.     /**
  700.      * The System property name {@value}.
  701.      *
  702.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.auth.retrylimit</a>
  703.      * @since 3.15.0
  704.      */
  705.     public static final String JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT = "jdk.httpclient.auth.retrylimit";

  706.     /**
  707.      * The System property name {@value}.
  708.      *
  709.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.bufsize</a>
  710.      * @since 3.15.0
  711.      */
  712.     public static final String JDK_HTTP_CLIENT_BUF_SIZE = "jdk.httpclient.bufsize";

  713.     /**
  714.      * The System property name {@value}.
  715.      *
  716.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.connectionPoolSize</a>
  717.      * @since 3.15.0
  718.      */
  719.     public static final String JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE = "jdk.httpclient.connectionPoolSize";

  720.     /**
  721.      * The System property name {@value}.
  722.      *
  723.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.connectionWindowSize</a>
  724.      * @since 3.15.0
  725.      */
  726.     public static final String JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE = "jdk.httpclient.connectionWindowSize";

  727.     /**
  728.      * The System property name {@value}.
  729.      *
  730.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.disableRetryConnect</a>
  731.      * @since 3.15.0
  732.      */
  733.     public static final String JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT = "jdk.httpclient.disableRetryConnect";

  734.     /**
  735.      * The System property name {@value}.
  736.      *
  737.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.enableAllMethodRetry</a>
  738.      * @since 3.15.0
  739.      */
  740.     public static final String JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY = "jdk.httpclient.enableAllMethodRetry";

  741.     /**
  742.      * The System property name {@value}.
  743.      *
  744.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.enablepush</a>
  745.      * @since 3.15.0
  746.      */
  747.     public static final String JDK_HTTP_CLIENT_ENABLE_PUSH = "jdk.httpclient.enablepush";

  748.     /**
  749.      * The System property name {@value}.
  750.      *
  751.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.hpack.maxheadertablesize</a>
  752.      * @since 3.15.0
  753.      */
  754.     public static final String JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE = "jdk.httpclient.hpack.maxheadertablesize";

  755.     /**
  756.      * The System property name {@value}.
  757.      *
  758.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.HttpClient.log</a>
  759.      * @since 3.15.0
  760.      */
  761.     public static final String JDK_HTTP_CLIENT_HTTP_CLIENT_LOG = "jdk.httpclient.HttpClient.log";

  762.     /**
  763.      * The System property name {@value}.
  764.      *
  765.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout</a>
  766.      * @since 3.15.0
  767.      */
  768.     public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT = "jdk.httpclient.keepalive.timeout";

  769.     /**
  770.      * The System property name {@value}.
  771.      *
  772.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout.h2</a>
  773.      * @since 3.15.0
  774.      */
  775.     public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2 = "jdk.httpclient.keepalive.timeout.h2";

  776.     /**
  777.      * The System property name {@value}.
  778.      *
  779.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.maxframesize</a>
  780.      * @since 3.15.0
  781.      */
  782.     public static final String JDK_HTTP_CLIENT_MAX_FRAME_SIZE = "jdk.httpclient.maxframesize";

  783.     /**
  784.      * The System property name {@value}.
  785.      *
  786.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.maxstreams</a>
  787.      * @since 3.15.0
  788.      */
  789.     public static final String JDK_HTTP_CLIENT_MAX_STREAMS = "jdk.httpclient.maxstreams";

  790.     /**
  791.      * The System property name {@value}.
  792.      *
  793.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.receiveBufferSize</a>
  794.      * @since 3.15.0
  795.      */
  796.     public static final String JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE = "jdk.httpclient.receiveBufferSize";

  797.     /**
  798.      * The System property name {@value}.
  799.      *
  800.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.redirects.retrylimit</a>
  801.      * @since 3.15.0
  802.      */
  803.     public static final String JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT = "jdk.httpclient.redirects.retrylimit";

  804.     /**
  805.      * The System property name {@value}.
  806.      *
  807.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.sendBufferSize</a>
  808.      * @since 3.15.0
  809.      */
  810.     public static final String JDK_HTTP_CLIENT_SEND_BUFFER_SIZE = "jdk.httpclient.sendBufferSize";

  811.     /**
  812.      * The System property name {@value}.
  813.      *
  814.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.websocket.writeBufferSize</a>
  815.      * @since 3.15.0
  816.      */
  817.     public static final String JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE = "jdk.httpclient.websocket.writeBufferSize";

  818.     /**
  819.      * The System property name {@value}.
  820.      *
  821.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.windowsize</a>
  822.      * @since 3.15.0
  823.      */
  824.     public static final String JDK_HTTP_CLIENT_WINDOW_SIZE = "jdk.httpclient.windowsize";

  825.     /**
  826.      * The System property name {@value}.
  827.      *
  828.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpserver.maxConnections</a>
  829.      * @since 3.15.0
  830.      */
  831.     public static final String JDK_HTTP_SERVER_MAX_CONNECTIONS = "jdk.httpserver.maxConnections";

  832.     /**
  833.      * The System property name {@value}.
  834.      *
  835.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.https.negotiate.cbt</a>
  836.      * @since 3.15.0
  837.      */
  838.     public static final String JDK_HTTPS_NEGOTIATE_CBT = "jdk.https.negotiate.cbt";

  839.     /**
  840.      * The System property name {@value}.
  841.      *
  842.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.includeInExceptions</a>
  843.      * @since 3.15.0
  844.      */
  845.     public static final String JDK_INCLUDE_IN_EXCEPTIONS = "jdk.includeInExceptions";

  846.     /**
  847.      * The System property name {@value}.
  848.      *
  849.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.internal.httpclient.disableHostnameVerification</a>
  850.      * @since 3.15.0
  851.      */
  852.     public static final String JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION = "jdk.internal.httpclient.disableHostnameVerification";

  853.     /**
  854.      * The System property name {@value}.
  855.      *
  856.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.io.permissionsUseCanonicalPath</a>
  857.      * @since 3.15.0
  858.      */
  859.     public static final String JDK_IO_PERMISSIONS_USE_CANONICAL_PATH = "jdk.io.permissionsUseCanonicalPath";

  860.     /**
  861.      * The System property name {@value}.
  862.      *
  863.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.ldap.object.factoriesFilter</a>
  864.      * @since 3.15.0
  865.      */
  866.     public static final String JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER = "jdk.jndi.ldap.object.factoriesFilter";

  867.     /**
  868.      * The System property name {@value}.
  869.      *
  870.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.object.factoriesFilter</a>
  871.      * @since 3.15.0
  872.      */
  873.     public static final String JDK_JNDI_OBJECT_FACTORIES_FILTER = "jdk.jndi.object.factoriesFilter";

  874.     /**
  875.      * The System property name {@value}.
  876.      *
  877.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.rmi.object.factoriesFilter</a>
  878.      * @since 3.15.0
  879.      */
  880.     public static final String JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER = "jdk.jndi.rmi.object.factoriesFilter";

  881.     /**
  882.      * The System property name {@value}.
  883.      *
  884.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.main</a>
  885.      * @since 3.15.0
  886.      */
  887.     public static final String JDK_MODULE_MAIN = "jdk.module.main";

  888.     /**
  889.      * The System property name {@value}.
  890.      *
  891.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.main.class</a>
  892.      * @since 3.15.0
  893.      */
  894.     public static final String JDK_MODULE_MAIN_CLASS = "jdk.module.main.class";

  895.     /**
  896.      * The System property name {@value}.
  897.      *
  898.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.path</a>
  899.      * @since 3.15.0
  900.      */
  901.     public static final String JDK_MODULE_PATH = "jdk.module.path";

  902.     /**
  903.      * The System property name {@value}.
  904.      *
  905.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.upgrade.path</a>
  906.      * @since 3.15.0
  907.      */
  908.     public static final String JDK_MODULE_UPGRADE_PATH = "jdk.module.upgrade.path";

  909.     /**
  910.      * The System property name {@value}.
  911.      *
  912.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.net.unixdomain.tmpdir</a>
  913.      * @since 3.15.0
  914.      */
  915.     public static final String JDK_NET_UNIX_DOMAIN_TMPDIR = "jdk.net.unixdomain.tmpdir";

  916.     /**
  917.      * The System property name {@value}.
  918.      *
  919.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  920.      * @since 3.15.0
  921.      */
  922.     public static final String JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES = "jdk.net.URLClassPath.showIgnoredClassPathEntries";

  923.     /**
  924.      * The System property name {@value}.
  925.      *
  926.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.serialFilter</a>
  927.      * @since 3.15.0
  928.      */
  929.     public static final String JDK_SERIAL_FILTER = "jdk.serialFilter";

  930.     /**
  931.      * The System property name {@value}.
  932.      *
  933.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.serialFilterFactory</a>
  934.      * @since 3.15.0
  935.      */
  936.     public static final String JDK_SERIAL_FILTER_FACTORY = "jdk.serialFilterFactory";

  937.     /**
  938.      * The System property name {@value}.
  939.      *
  940.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.client.SignatureSchemes</a>
  941.      * @since 3.15.0
  942.      */
  943.     public static final String JDK_TLS_CLIENT_SIGNATURE_SCHEMES = "jdk.tls.client.SignatureSchemes";

  944.     /**
  945.      * The System property name {@value}.
  946.      *
  947.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.namedGroups</a>
  948.      * @since 3.15.0
  949.      */
  950.     public static final String JDK_TLS_NAMED_GROUPS = "jdk.tls.namedGroups";

  951.     /**
  952.      * The System property name {@value}.
  953.      *
  954.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.server.SignatureSchemes</a>
  955.      * @since 3.15.0
  956.      */
  957.     public static final String JDK_TLS_SERVER_SIGNATURE_SCHEMES = "jdk.tls.server.SignatureSchemes";

  958.     /**
  959.      * The System property name {@value}.
  960.      *
  961.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.virtualThreadScheduler.maxPoolSize</a>
  962.      * @since 3.15.0
  963.      */
  964.     public static final String JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE = "jdk.virtualThreadScheduler.maxPoolSize";

  965.     /**
  966.      * The System property name {@value}.
  967.      *
  968.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.virtualThreadScheduler.parallelism</a>
  969.      * @since 3.15.0
  970.      */
  971.     public static final String JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM = "jdk.virtualThreadScheduler.parallelism";

  972.     /**
  973.      * The System property name {@value}.
  974.      *
  975.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.cdataChunkSize</a>
  976.      * @since 3.15.0
  977.      */
  978.     public static final String JDK_XML_CDATA_CHUNK_SIZE = "jdk.xml.cdataChunkSize";

  979.     /**
  980.      * The System property name {@value}.
  981.      *
  982.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.dtd.support</a>
  983.      * @since 3.15.0
  984.      */
  985.     public static final String JDK_XML_DTD_SUPPORT = "jdk.xml.dtd.support";

  986.     /**
  987.      * The System property name {@value}.
  988.      *
  989.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.elementAttributeLimit</a>
  990.      * @since 3.15.0
  991.      */
  992.     public static final String JDK_XML_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";

  993.     /**
  994.      * The System property name {@value}.
  995.      *
  996.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.enableExtensionFunctions</a>
  997.      * @since 3.15.0
  998.      */
  999.     public static final String JDK_XML_ENABLE_EXTENSION_FUNCTIONS = "jdk.xml.enableExtensionFunctions";

  1000.     /**
  1001.      * The System property name {@value}.
  1002.      *
  1003.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.entityExpansionLimit</a>
  1004.      * @since 3.15.0
  1005.      */
  1006.     public static final String JDK_XML_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";

  1007.     /**
  1008.      * The System property name {@value}.
  1009.      *
  1010.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.entityReplacementLimi_t</a>
  1011.      * @since 3.15.0
  1012.      */
  1013.     public static final String JDK_XML_ENTITY_REPLACEMENT_LIMIT = "jdk.xml.entityReplacementLimi_t";

  1014.     /**
  1015.      * The System property name {@value}.
  1016.      *
  1017.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.isStandalone</a>
  1018.      * @since 3.15.0
  1019.      */
  1020.     public static final String JDK_XML_IS_STANDALONE = "jdk.xml.isStandalone";

  1021.     /**
  1022.      * The System property name {@value}.
  1023.      *
  1024.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.jdkcatalog.resolve</a>
  1025.      * @since 3.15.0
  1026.      */
  1027.     public static final String JDK_XML_JDK_CATALOG_RESOLVE = "jdk.xml.jdkcatalog.resolve";

  1028.     /**
  1029.      * The System property name {@value}.
  1030.      *
  1031.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxElementDepth</a>
  1032.      * @since 3.15.0
  1033.      */
  1034.     public static final String JDK_XML_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth";

  1035.     /**
  1036.      * The System property name {@value}.
  1037.      *
  1038.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxGeneralEntitySizeLimit</a>
  1039.      * @since 3.15.0
  1040.      */
  1041.     public static final String JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";

  1042.     /**
  1043.      * The System property name {@value}.
  1044.      *
  1045.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxOccurLimit</a>
  1046.      * @since 3.15.0
  1047.      */
  1048.     public static final String JDK_XML_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";

  1049.     /**
  1050.      * The System property name {@value}.
  1051.      *
  1052.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxParameterEntitySizeLimit</a>
  1053.      * @since 3.15.0
  1054.      */
  1055.     public static final String JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";

  1056.     /**
  1057.      * The System property name {@value}.
  1058.      *
  1059.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxXMLNameLimit</a>
  1060.      * @since 3.15.0
  1061.      */
  1062.     public static final String JDK_XML_MAX_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";

  1063.     /**
  1064.      * The System property name {@value}.
  1065.      *
  1066.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.overrideDefaultParser</a>
  1067.      * @since 3.15.0
  1068.      */
  1069.     public static final String JDK_XML_OVERRIDE_DEFAULT_PARSER = "jdk.xml.overrideDefaultParser";

  1070.     /**
  1071.      * The System property name {@value}.
  1072.      *
  1073.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.resetSymbolTable</a>
  1074.      * @since 3.15.0
  1075.      */
  1076.     public static final String JDK_XML_RESET_SYMBOL_TABLE = "jdk.xml.resetSymbolTable";

  1077.     /**
  1078.      * The System property name {@value}.
  1079.      *
  1080.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.totalEntitySizeLimit</a>
  1081.      * @since 3.15.0
  1082.      */
  1083.     public static final String JDK_XML_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";

  1084.     /**
  1085.      * The System property name {@value}.
  1086.      *
  1087.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.xsltcIsStandalone</a>
  1088.      * @since 3.15.0
  1089.      */
  1090.     public static final String JDK_XML_XSLTC_IS_STANDALONE = "jdk.xml.xsltcIsStandalone";

  1091.     /**
  1092.      * The System property name {@value}.
  1093.      */
  1094.     public static final String LINE_SEPARATOR = "line.separator";

  1095.     /**
  1096.      * The System property name {@value}.
  1097.      *
  1098.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">native.encoding</a>
  1099.      * @since 3.15.0
  1100.      */
  1101.     public static final String NATIVE_ENCODING = "native.encoding";

  1102.     /**
  1103.      * The System property name {@value}.
  1104.      *
  1105.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.negative.ttl</a>
  1106.      * @since 3.15.0
  1107.      */
  1108.     public static final String NETWORK_ADDRESS_CACHE_NEGATIVE_TTL = "networkaddress.cache.negative.ttl";

  1109.     /**
  1110.      * The System property name {@value}.
  1111.      *
  1112.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.stale.ttl</a>
  1113.      * @since 3.15.0
  1114.      */
  1115.     public static final String NETWORK_ADDRESS_CACHE_STALE_TTL = "networkaddress.cache.stale.ttl";

  1116.     /**
  1117.      * The System property name {@value}.
  1118.      *
  1119.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.ttl</a>
  1120.      * @since 3.15.0
  1121.      */
  1122.     public static final String NETWORK_ADDRESS_CACHE_TTL = "networkaddress.cache.ttl";

  1123.     /**
  1124.      * The System property name {@value}.
  1125.      *
  1126.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">org.jcp.xml.dsig.securevalidation</a>
  1127.      * @since 3.15.0
  1128.      */
  1129.     public static final String ORG_JCP_XML_DSIG_SECURE_VALIDATION = "org.jcp.xml.dsig.securevalidation";

  1130.     /**
  1131.      * The System property name {@value}.
  1132.      *
  1133.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">org.openjdk.java.util.stream.tripwire</a>
  1134.      * @since 3.15.0
  1135.      */
  1136.     public static final String ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE = "org.openjdk.java.util.stream.tripwire";

  1137.     /**
  1138.      * The System property name {@value}.
  1139.      */
  1140.     public static final String OS_ARCH = "os.arch";

  1141.     /**
  1142.      * The System property name {@value}.
  1143.      */
  1144.     public static final String OS_NAME = "os.name";

  1145.     /**
  1146.      * The System property name {@value}.
  1147.      */
  1148.     public static final String OS_VERSION = "os.version";

  1149.     /**
  1150.      * The System property name {@value}.
  1151.      */
  1152.     public static final String PATH_SEPARATOR = "path.separator";

  1153.     /**
  1154.      * The System property name {@value}.
  1155.      *
  1156.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1157.      * @since 3.15.0
  1158.      */
  1159.     public static final String SOCKS_PROXY_HOST = "socksProxyHost";

  1160.     /**
  1161.      * The System property name {@value}.
  1162.      *
  1163.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1164.      * @since 3.15.0
  1165.      */
  1166.     public static final String SOCKS_PROXY_PORT = "socksProxyPort";

  1167.     /**
  1168.      * The System property name {@value}.
  1169.      *
  1170.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1171.      * @since 3.15.0
  1172.      */
  1173.     public static final String SOCKS_PROXY_VERSION = "socksProxyVersion";

  1174.     /**
  1175.      * The System property name {@value}.
  1176.      *
  1177.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1178.      * @since 3.15.0
  1179.      */
  1180.     public static final String STDERR_ENCODING = "stderr.encoding";

  1181.     /**
  1182.      * The System property name {@value}.
  1183.      *
  1184.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1185.      * @since 3.15.0
  1186.      */
  1187.     public static final String STDOUT_ENCODING = "stdout.encoding";

  1188.     /**
  1189.      * The System property name {@value}.
  1190.      *
  1191.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1192.      * @since 3.15.0
  1193.      */
  1194.     public static final String SUN_NET_HTTP_SERVER_DRAIN_AMOUNT = "sun.net.httpserver.drainAmount";

  1195.     /**
  1196.      * The System property name {@value}.
  1197.      *
  1198.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1199.      * @since 3.15.0
  1200.      */
  1201.     public static final String SUN_NET_HTTP_SERVER_IDLE_INTERVAL = "sun.net.httpserver.idleInterval";

  1202.     /**
  1203.      * The System property name {@value}.
  1204.      *
  1205.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1206.      * @since 3.15.0
  1207.      */
  1208.     public static final String SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS = "sun.net.httpserver.maxIdleConnections";

  1209.     /**
  1210.      * The System property name {@value}.
  1211.      *
  1212.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1213.      * @since 3.15.0
  1214.      */
  1215.     public static final String SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS = "sun.net.httpserver.maxReqHeaders";

  1216.     /**
  1217.      * The System property name {@value}.
  1218.      *
  1219.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1220.      * @since 3.15.0
  1221.      */
  1222.     public static final String SUN_NET_HTTP_SERVER_MAX_REQ_TIME = "sun.net.httpserver.maxReqTime";

  1223.     /**
  1224.      * The System property name {@value}.
  1225.      *
  1226.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1227.      * @since 3.15.0
  1228.      */
  1229.     public static final String SUN_NET_HTTP_SERVER_MAX_RSP_TIME = "sun.net.httpserver.maxRspTime";

  1230.     /**
  1231.      * The System property name {@value}.
  1232.      *
  1233.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1234.      * @since 3.15.0
  1235.      */
  1236.     public static final String SUN_NET_HTTP_SERVER_NO_DELAY = "sun.net.httpserver.nodelay";

  1237.     /**
  1238.      * The System property name {@value}.
  1239.      *
  1240.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1241.      * @since 3.15.0
  1242.      */
  1243.     public static final String SUN_SECURITY_KRB5_PRINCIPAL = "sun.security.krb5.principal";

  1244.     /**
  1245.      * The System property name {@value}.
  1246.      */
  1247.     public static final String USER_COUNTRY = "user.country";

  1248.     /**
  1249.      * The System property name {@value}.
  1250.      */
  1251.     public static final String USER_DIR = "user.dir";

  1252.     /**
  1253.      * The System property name {@value}.
  1254.      *
  1255.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1256.      * @since 3.15.0
  1257.      */
  1258.     public static final String USER_EXTENSIONS = "user.extensions";

  1259.     /**
  1260.      * The System property name {@value}.
  1261.      */
  1262.     public static final String USER_HOME = "user.home";

  1263.     /**
  1264.      * The System property name {@value}.
  1265.      */
  1266.     public static final String USER_LANGUAGE = "user.language";

  1267.     /**
  1268.      * The System property name {@value}.
  1269.      */
  1270.     public static final String USER_NAME = "user.name";

  1271.     /**
  1272.      * The System property name {@value}.
  1273.      */
  1274.     public static final String USER_REGION = "user.region";

  1275.     /**
  1276.      * The System property name {@value}.
  1277.      *
  1278.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1279.      * @since 3.15.0
  1280.      */
  1281.     public static final String USER_SCRIPT = "user.script";

  1282.     /**
  1283.      * The System property name {@value}.
  1284.      */
  1285.     public static final String USER_TIMEZONE = "user.timezone";

  1286.     /**
  1287.      * The System property name {@value}.
  1288.      *
  1289.      * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
  1290.      * @since 3.15.0
  1291.      */
  1292.     public static final String USER_VARIANT = "user.variant";

  1293.     /**
  1294.      * Gets the current value from the system properties map.
  1295.      * <p>
  1296.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1297.      * </p>
  1298.      *
  1299.      * @return the current value from the system properties map.
  1300.      * @since 3.15.0
  1301.      */
  1302.     public static String getAppleAwtEnableTemplateImages() {
  1303.         return getProperty(APPLE_AWT_ENABLE_TEMPLATE_IMAGES);
  1304.     }

  1305.     /**
  1306.      * Gets the current value from the system properties map.
  1307.      * <p>
  1308.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1309.      * </p>
  1310.      *
  1311.      * @return the current value from the system properties map.
  1312.      */
  1313.     public static String getAwtToolkit() {
  1314.         return getProperty(AWT_TOOLKIT);
  1315.     }

  1316.     /**
  1317.      * Gets the current value for the property named {@code key} as an {@code boolean}.
  1318.      *
  1319.      * @param key             The key
  1320.      * @param defaultIfAbsent The default value
  1321.      * @return an {@code boolean} or defaultIfAbsent
  1322.      */
  1323.     public static boolean getBoolean(final String key, final BooleanSupplier defaultIfAbsent) {
  1324.         final String str = getProperty(key);
  1325.         return str == null ? defaultIfAbsent != null && defaultIfAbsent.getAsBoolean() : Boolean.parseBoolean(str);
  1326.     }

  1327.     /**
  1328.      * Gets the current value from the system properties map.
  1329.      * <p>
  1330.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1331.      * </p>
  1332.      *
  1333.      * @return the current value from the system properties map.
  1334.      * @since 3.15.0
  1335.      */
  1336.     public static String getComSunJndiLdapObjectTrustSerialData() {
  1337.         return getProperty(COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA);
  1338.     }

  1339.     /**
  1340.      * Gets the current value from the system properties map.
  1341.      * <p>
  1342.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1343.      * </p>
  1344.      *
  1345.      * @return the current value from the system properties map.
  1346.      * @since 3.15.0
  1347.      */
  1348.     public static String getComSunNetHttpServerHttpServerProvider() {
  1349.         return getProperty(COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER);
  1350.     }

  1351.     /**
  1352.      * Gets the current value from the system properties map.
  1353.      * <p>
  1354.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1355.      * </p>
  1356.      * <p>
  1357.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1358.      * </p>
  1359.      *
  1360.      * @return the current value from the system properties map.
  1361.      */
  1362.     public static String getFileEncoding() {
  1363.         return getProperty(FILE_ENCODING);
  1364.     }

  1365.     /**
  1366.      * Gets the current value from the system properties map.
  1367.      * <p>
  1368.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1369.      * </p>
  1370.      *
  1371.      * @return the current value from the system properties map.
  1372.      */
  1373.     public static String getFileSeparator() {
  1374.         return getProperty(FILE_SEPARATOR);
  1375.     }

  1376.     /**
  1377.      * Gets the current value from the system properties map.
  1378.      * <p>
  1379.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1380.      * </p>
  1381.      *
  1382.      * @return the current value from the system properties map.
  1383.      * @since 3.15.0
  1384.      */
  1385.     public static String getFtpNonProxyHost() {
  1386.         return getProperty(FTP_NON_PROXY_HOST);
  1387.     }

  1388.     /**
  1389.      * Gets the current value from the system properties map.
  1390.      * <p>
  1391.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1392.      * </p>
  1393.      *
  1394.      * @return the current value from the system properties map.
  1395.      * @since 3.15.0
  1396.      */
  1397.     public static String getFtpProxyHost() {
  1398.         return getProperty(FTP_PROXY_HOST);
  1399.     }

  1400.     /**
  1401.      * Gets the current value from the system properties map.
  1402.      * <p>
  1403.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1404.      * </p>
  1405.      *
  1406.      * @return the current value from the system properties map.
  1407.      * @since 3.15.0
  1408.      */
  1409.     public static String getFtpProxyPort() {
  1410.         return getProperty(FTP_PROXY_PORT);
  1411.     }

  1412.     /**
  1413.      * Gets the current value from the system properties map.
  1414.      * <p>
  1415.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1416.      * </p>
  1417.      *
  1418.      * @return the current value from the system properties map.
  1419.      * @since 3.15.0
  1420.      */
  1421.     public static String getHttpAgent() {
  1422.         return getProperty(HTTP_AGENT);
  1423.     }

  1424.     /**
  1425.      * Gets the current value from the system properties map.
  1426.      * <p>
  1427.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1428.      * </p>
  1429.      *
  1430.      * @return the current value from the system properties map.
  1431.      * @since 3.15.0
  1432.      */
  1433.     public static String getHttpAuthDigestCnonceRepeat() {
  1434.         return getProperty(HTTP_AUTH_DIGEST_CNONCE_REPEAT);
  1435.     }

  1436.     /**
  1437.      * Gets the current value from the system properties map.
  1438.      * <p>
  1439.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1440.      * </p>
  1441.      *
  1442.      * @return the current value from the system properties map.
  1443.      * @since 3.15.0
  1444.      */
  1445.     public static String getHttpAuthDigestReenabledAlgorithms() {
  1446.         return getProperty(HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS);
  1447.     }

  1448.     /**
  1449.      * Gets the current value from the system properties map.
  1450.      * <p>
  1451.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1452.      * </p>
  1453.      *
  1454.      * @return the current value from the system properties map.
  1455.      * @since 3.15.0
  1456.      */
  1457.     public static String getHttpAuthDigestValidateProxy() {
  1458.         return getProperty(HTTP_AUTH_DIGEST_VALIDATE_PROXY);
  1459.     }

  1460.     /**
  1461.      * Gets the current value from the system properties map.
  1462.      * <p>
  1463.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1464.      * </p>
  1465.      *
  1466.      * @return the current value from the system properties map.
  1467.      * @since 3.15.0
  1468.      */
  1469.     public static String getHttpAuthDigestValidateServer() {
  1470.         return getProperty(HTTP_AUTH_DIGEST_VALIDATE_SERVER);
  1471.     }

  1472.     /**
  1473.      * Gets the current value from the system properties map.
  1474.      * <p>
  1475.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1476.      * </p>
  1477.      *
  1478.      * @return the current value from the system properties map.
  1479.      * @since 3.15.0
  1480.      */
  1481.     public static String getHttpAuthNtlmDomain() {
  1482.         return getProperty(HTTP_AUTH_NTLM_DOMAIN);
  1483.     }

  1484.     /**
  1485.      * Gets the current value from the system properties map.
  1486.      * <p>
  1487.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1488.      * </p>
  1489.      *
  1490.      * @return the current value from the system properties map.
  1491.      * @since 3.15.0
  1492.      */
  1493.     public static String getHttpKeepAlive() {
  1494.         return getProperty(HTTP_KEEP_ALIVE);
  1495.     }

  1496.     /**
  1497.      * Gets the current value from the system properties map.
  1498.      * <p>
  1499.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1500.      * </p>
  1501.      *
  1502.      * @return the current value from the system properties map.
  1503.      * @since 3.15.0
  1504.      */
  1505.     public static String getHttpKeepAliveTimeProxy() {
  1506.         return getProperty(HTTP_KEEP_ALIVE_TIME_PROXY);
  1507.     }

  1508.     /**
  1509.      * Gets the current value from the system properties map.
  1510.      * <p>
  1511.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1512.      * </p>
  1513.      *
  1514.      * @return the current value from the system properties map.
  1515.      * @since 3.15.0
  1516.      */
  1517.     public static String getHttpKeepAliveTimeServer() {
  1518.         return getProperty(HTTP_KEEP_ALIVE_TIME_SERVER);
  1519.     }

  1520.     /**
  1521.      * Gets the current value from the system properties map.
  1522.      * <p>
  1523.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1524.      * </p>
  1525.      *
  1526.      * @return the current value from the system properties map.
  1527.      * @since 3.15.0
  1528.      */
  1529.     public static String getHttpMaxConnections() {
  1530.         return getProperty(HTTP_MAX_CONNECTIONS);
  1531.     }

  1532.     /**
  1533.      * Gets the current value from the system properties map.
  1534.      * <p>
  1535.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1536.      * </p>
  1537.      *
  1538.      * @return the current value from the system properties map.
  1539.      * @since 3.15.0
  1540.      */
  1541.     public static String getHttpMaxRedirects() {
  1542.         return getProperty(HTTP_MAX_REDIRECTS);
  1543.     }

  1544.     /**
  1545.      * Gets the current value from the system properties map.
  1546.      * <p>
  1547.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1548.      * </p>
  1549.      *
  1550.      * @return the current value from the system properties map.
  1551.      * @since 3.15.0
  1552.      */
  1553.     public static String getHttpNonProxyHosts() {
  1554.         return getProperty(HTTP_NON_PROXY_HOSTS);
  1555.     }

  1556.     /**
  1557.      * Gets the current value from the system properties map.
  1558.      * <p>
  1559.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1560.      * </p>
  1561.      *
  1562.      * @return the current value from the system properties map.
  1563.      * @since 3.15.0
  1564.      */
  1565.     public static String getHttpProxyHost() {
  1566.         return getProperty(HTTP_PROXY_HOST);
  1567.     }

  1568.     /**
  1569.      * Gets the current value from the system properties map.
  1570.      * <p>
  1571.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1572.      * </p>
  1573.      *
  1574.      * @return the current value from the system properties map.
  1575.      * @since 3.15.0
  1576.      */
  1577.     public static String getHttpProxyPort() {
  1578.         return getProperty(HTTP_PROXY_PORT);
  1579.     }

  1580.     /**
  1581.      * Gets the current value from the system properties map.
  1582.      * <p>
  1583.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1584.      * </p>
  1585.      *
  1586.      * @return the current value from the system properties map.
  1587.      * @since 3.15.0
  1588.      */
  1589.     public static String getHttpsProxyHost() {
  1590.         return getProperty(HTTPS_PROXY_HOST);
  1591.     }

  1592.     /**
  1593.      * Gets the current value from the system properties map.
  1594.      * <p>
  1595.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1596.      * </p>
  1597.      *
  1598.      * @return the current value from the system properties map.
  1599.      * @since 3.15.0
  1600.      */
  1601.     public static String getHttpsProxyPort() {
  1602.         return getProperty(HTTPS_PROXY_PORT);
  1603.     }

  1604.     /**
  1605.      * Gets the current value for the property named {@code key} as an {@code int}.
  1606.      *
  1607.      * @param key             The key
  1608.      * @param defaultIfAbsent The default value
  1609.      * @return an {@code int} or defaultIfAbsent
  1610.      */
  1611.     public static int getInt(final String key, final IntSupplier defaultIfAbsent) {
  1612.         final String str = getProperty(key);
  1613.         return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsInt() : 0 : Integer.parseInt(str);
  1614.     }

  1615.     /**
  1616.      * Gets the current value from the system properties map.
  1617.      * <p>
  1618.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1619.      * </p>
  1620.      *
  1621.      * @return the current value from the system properties map.
  1622.      */
  1623.     public static String getJavaAwtFonts() {
  1624.         return getProperty(JAVA_AWT_FONTS);
  1625.     }

  1626.     /**
  1627.      * Gets the current value from the system properties map.
  1628.      * <p>
  1629.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1630.      * </p>
  1631.      *
  1632.      * @return the current value from the system properties map.
  1633.      */
  1634.     public static String getJavaAwtGraphicsenv() {
  1635.         return getProperty(JAVA_AWT_GRAPHICSENV);
  1636.     }

  1637.     /**
  1638.      * Gets the current value from the system properties map.
  1639.      * <p>
  1640.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1641.      * </p>
  1642.      *
  1643.      * @return the current value from the system properties map.
  1644.      */
  1645.     public static String getJavaAwtHeadless() {
  1646.         return getProperty(JAVA_AWT_HEADLESS);
  1647.     }

  1648.     /**
  1649.      * Gets the current value from the system properties map.
  1650.      * <p>
  1651.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1652.      * </p>
  1653.      *
  1654.      * @return the current value from the system properties map.
  1655.      */
  1656.     public static String getJavaAwtPrinterjob() {
  1657.         return getProperty(JAVA_AWT_PRINTERJOB);
  1658.     }

  1659.     /**
  1660.      * Gets the current value from the system properties map.
  1661.      * <p>
  1662.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1663.      * </p>
  1664.      *
  1665.      * @return the current value from the system properties map.
  1666.      */
  1667.     public static String getJavaClassPath() {
  1668.         return getProperty(JAVA_CLASS_PATH);
  1669.     }

  1670.     /**
  1671.      * Gets the current value from the system properties map.
  1672.      * <p>
  1673.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1674.      * </p>
  1675.      *
  1676.      * @return the current value from the system properties map.
  1677.      */
  1678.     public static String getJavaClassVersion() {
  1679.         return getProperty(JAVA_CLASS_VERSION);
  1680.     }

  1681.     /**
  1682.      * Gets the current value from the system properties map.
  1683.      * <p>
  1684.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1685.      * </p>
  1686.      *
  1687.      * @return the current value from the system properties map.
  1688.      */
  1689.     public static String getJavaCompiler() {
  1690.         return getProperty(JAVA_COMPILER);
  1691.     }

  1692.     /**
  1693.      * Gets the current value from the system properties map.
  1694.      * <p>
  1695.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1696.      * </p>
  1697.      *
  1698.      * @return the current value from the system properties map.
  1699.      * @since 3.15.0
  1700.      */
  1701.     public static String getJavaContentHandlerPkgs() {
  1702.         return getProperty(JAVA_CONTENT_HANDLER_PKGS);
  1703.     }

  1704.     /**
  1705.      * Gets the current value from the system properties map.
  1706.      * <p>
  1707.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1708.      * </p>
  1709.      *
  1710.      * @return the current value from the system properties map.
  1711.      */
  1712.     public static String getJavaEndorsedDirs() {
  1713.         return getProperty(JAVA_ENDORSED_DIRS);
  1714.     }

  1715.     /**
  1716.      * Gets the current value from the system properties map.
  1717.      * <p>
  1718.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1719.      * </p>
  1720.      *
  1721.      * @return the current value from the system properties map.
  1722.      */
  1723.     public static String getJavaExtDirs() {
  1724.         return getProperty(JAVA_EXT_DIRS);
  1725.     }

  1726.     /**
  1727.      * Gets the current value from the system properties map.
  1728.      * <p>
  1729.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1730.      * </p>
  1731.      *
  1732.      * @return the current value from the system properties map.
  1733.      */
  1734.     public static String getJavaHome() {
  1735.         return getProperty(JAVA_HOME);
  1736.     }

  1737.     /**
  1738.      * Gets the current value from the system properties map.
  1739.      * <p>
  1740.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1741.      * </p>
  1742.      *
  1743.      * @return the current value from the system properties map.
  1744.      */
  1745.     public static String getJavaIoTmpdir() {
  1746.         return getProperty(JAVA_IO_TMPDIR);
  1747.     }

  1748.     /**
  1749.      * Gets the current value from the system properties map.
  1750.      * <p>
  1751.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1752.      * </p>
  1753.      *
  1754.      * @return the current value from the system properties map.
  1755.      */
  1756.     public static String getJavaLibraryPath() {
  1757.         return getProperty(JAVA_LIBRARY_PATH);
  1758.     }

  1759.     /**
  1760.      * Gets the current value from the system properties map.
  1761.      * <p>
  1762.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1763.      * </p>
  1764.      * <p>
  1765.      * Java 9 and above.
  1766.      * </p>
  1767.      *
  1768.      * @return the current value from the system properties map.
  1769.      */
  1770.     public static String getJavaLocaleProviders() {
  1771.         return getProperty(JAVA_LOCALE_PROVIDERS);
  1772.     }

  1773.     /**
  1774.      * Gets the current value from the system properties map.
  1775.      * <p>
  1776.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1777.      * </p>
  1778.      *
  1779.      * @return the current value from the system properties map.
  1780.      * @since 3.15.0
  1781.      */
  1782.     public static String getJavaLocaleUseOldIsoCodes() {
  1783.         return getProperty(JAVA_LOCALE_USE_OLD_ISO_CODES);
  1784.     }

  1785.     /**
  1786.      * Gets the current value from the system properties map.
  1787.      * <p>
  1788.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1789.      * </p>
  1790.      *
  1791.      * @return the current value from the system properties map.
  1792.      * @since 3.15.0
  1793.      */
  1794.     public static String getJavaNetPreferIpv4Stack() {
  1795.         return getProperty(JAVA_NET_PREFER_IPV4_STACK);
  1796.     }

  1797.     /**
  1798.      * Gets the current value from the system properties map.
  1799.      * <p>
  1800.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1801.      * </p>
  1802.      *
  1803.      * @return the current value from the system properties map.
  1804.      * @since 3.15.0
  1805.      */
  1806.     public static String getJavaNetPreferIpv6Addresses() {
  1807.         return getProperty(JAVA_NET_PREFER_IPV6_ADDRESSES);
  1808.     }

  1809.     /**
  1810.      * Gets the current value from the system properties map.
  1811.      * <p>
  1812.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1813.      * </p>
  1814.      *
  1815.      * @return the current value from the system properties map.
  1816.      * @since 3.15.0
  1817.      */
  1818.     public static String getJavaNetSocksPassword() {
  1819.         return getProperty(JAVA_NET_SOCKS_PASSWORD);
  1820.     }

  1821.     /**
  1822.      * Gets the current value from the system properties map.
  1823.      * <p>
  1824.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1825.      * </p>
  1826.      *
  1827.      * @return the current value from the system properties map.
  1828.      * @since 3.15.0
  1829.      */
  1830.     public static String getJavaNetSocksUserName() {
  1831.         return getProperty(JAVA_NET_SOCKS_USER_NAME);
  1832.     }

  1833.     /**
  1834.      * Gets the current value from the system properties map.
  1835.      * <p>
  1836.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1837.      * </p>
  1838.      *
  1839.      * @return the current value from the system properties map.
  1840.      * @since 3.15.0
  1841.      */
  1842.     public static String getJavaNetUseSystemProxies() {
  1843.         return getProperty(JAVA_NET_USE_SYSTEM_PROXIES);
  1844.     }

  1845.     /**
  1846.      * Gets the current value from the system properties map.
  1847.      * <p>
  1848.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1849.      * </p>
  1850.      *
  1851.      * @return the current value from the system properties map.
  1852.      * @since 3.15.0
  1853.      */
  1854.     public static String getJavaNioChannelsDefaultThreadPoolInitialSize() {
  1855.         return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE);
  1856.     }

  1857.     /**
  1858.      * Gets the current value from the system properties map.
  1859.      * <p>
  1860.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1861.      * </p>
  1862.      *
  1863.      * @return the current value from the system properties map.
  1864.      * @since 3.15.0
  1865.      */
  1866.     public static String getJavaNioChannelsDefaultThreadPoolThreadFactory() {
  1867.         return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY);
  1868.     }

  1869.     /**
  1870.      * Gets the current value from the system properties map.
  1871.      * <p>
  1872.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1873.      * </p>
  1874.      *
  1875.      * @return the current value from the system properties map.
  1876.      * @since 3.15.0
  1877.      */
  1878.     public static String getJavaNioChannelsSpiAsynchronousChannelProvider() {
  1879.         return getProperty(JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER);
  1880.     }

  1881.     /**
  1882.      * Gets the current value from the system properties map.
  1883.      * <p>
  1884.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1885.      * </p>
  1886.      *
  1887.      * @return the current value from the system properties map.
  1888.      * @since 3.15.0
  1889.      */
  1890.     public static String getJavaNioChannelsSpiSelectorProvider() {
  1891.         return getProperty(JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER);
  1892.     }

  1893.     /**
  1894.      * Gets the current value from the system properties map.
  1895.      * <p>
  1896.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1897.      * </p>
  1898.      *
  1899.      * @return the current value from the system properties map.
  1900.      * @since 3.15.0
  1901.      */
  1902.     public static String getJavaNioFileSpiDefaultFileSystemProvider() {
  1903.         return getProperty(JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER);
  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 current value from the system properties map.
  1912.      * @since 3.15.0
  1913.      */
  1914.     public static String getJavaPropertiesDate() {
  1915.         return getProperty(JAVA_PROPERTIES_DATE);
  1916.     }

  1917.     /**
  1918.      * Gets the current value from the system properties map.
  1919.      * <p>
  1920.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1921.      * </p>
  1922.      *
  1923.      * @return the current value from the system properties map.
  1924.      * @since 3.15.0
  1925.      */
  1926.     public static String getJavaProtocolHandlerPkgs() {
  1927.         return getProperty(JAVA_PROTOCOL_HANDLER_PKGS);
  1928.     }

  1929.     /**
  1930.      * Gets the current value from the system properties map.
  1931.      * <p>
  1932.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1933.      * </p>
  1934.      *
  1935.      * @return the current value from the system properties map.
  1936.      * @since 3.15.0
  1937.      */
  1938.     public static String getJavaRmiServerCodebase() {
  1939.         return getProperty(JAVA_RMI_SERVER_CODEBASE);
  1940.     }

  1941.     /**
  1942.      * Gets the current value from the system properties map.
  1943.      * <p>
  1944.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1945.      * </p>
  1946.      *
  1947.      * @return the current value from the system properties map.
  1948.      * @since 3.15.0
  1949.      */
  1950.     public static String getJavaRmiServerHostName() {
  1951.         return getProperty(JAVA_RMI_SERVER_HOST_NAME);
  1952.     }

  1953.     /**
  1954.      * Gets the current value from the system properties map.
  1955.      * <p>
  1956.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1957.      * </p>
  1958.      *
  1959.      * @return the current value from the system properties map.
  1960.      * @since 3.15.0
  1961.      */
  1962.     public static String getJavaRmiServerRandomIds() {
  1963.         return getProperty(JAVA_RMI_SERVER_RANDOM_IDS);
  1964.     }

  1965.     /**
  1966.      * Gets the current value from the system properties map.
  1967.      * <p>
  1968.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1969.      * </p>
  1970.      *
  1971.      * @return the current value from the system properties map.
  1972.      * @since 3.15.0
  1973.      */
  1974.     public static String getJavaRmiServerRmiClassLoaderSpi() {
  1975.         return getProperty(JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI);
  1976.     }

  1977.     /**
  1978.      * Gets the current value from the system properties map.
  1979.      * <p>
  1980.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1981.      * </p>
  1982.      *
  1983.      * @return the current value from the system properties map.
  1984.      */
  1985.     public static String getJavaRuntimeName() {
  1986.         return getProperty(JAVA_RUNTIME_NAME);
  1987.     }

  1988.     /**
  1989.      * Gets the current value from the system properties map.
  1990.      * <p>
  1991.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  1992.      * </p>
  1993.      *
  1994.      * @return the current value from the system properties map.
  1995.      */
  1996.     public static String getJavaRuntimeVersion() {
  1997.         return getProperty(JAVA_RUNTIME_VERSION);
  1998.     }

  1999.     /**
  2000.      * Gets the current value from the system properties map.
  2001.      * <p>
  2002.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2003.      * </p>
  2004.      *
  2005.      * @return the current value from the system properties map.
  2006.      * @since 3.15.0
  2007.      */
  2008.     public static String getJavaSecurityAuthLoginConfig() {
  2009.         return getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG);
  2010.     }

  2011.     /**
  2012.      * Gets the current value from the system properties map.
  2013.      * <p>
  2014.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2015.      * </p>
  2016.      *
  2017.      * @return the current value from the system properties map.
  2018.      * @since 3.15.0
  2019.      */
  2020.     public static String getJavaSecurityManager() {
  2021.         return getProperty(JAVA_SECURITY_MANAGER);
  2022.     }

  2023.     /**
  2024.      * Gets the current value from the system properties map.
  2025.      * <p>
  2026.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2027.      * </p>
  2028.      *
  2029.      * @return the current value from the system properties map.
  2030.      * @since 3.15.0
  2031.      */
  2032.     public static String getJavaSpecificationMaintenanceVersion() {
  2033.         return getProperty(JAVA_SPECIFICATION_MAINTENANCE_VERSION);
  2034.     }

  2035.     /**
  2036.      * Gets the current value from the system properties map.
  2037.      * <p>
  2038.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2039.      * </p>
  2040.      *
  2041.      * @return the current value from the system properties map.
  2042.      */
  2043.     public static String getJavaSpecificationName() {
  2044.         return getProperty(JAVA_SPECIFICATION_NAME);
  2045.     }

  2046.     /**
  2047.      * Gets the current value from the system properties map.
  2048.      * <p>
  2049.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2050.      * </p>
  2051.      *
  2052.      * @return the current value from the system properties map.
  2053.      */
  2054.     public static String getJavaSpecificationVendor() {
  2055.         return getProperty(JAVA_SPECIFICATION_VENDOR);
  2056.     }

  2057.     /**
  2058.      * Gets the current value from the system properties map.
  2059.      * <p>
  2060.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2061.      * </p>
  2062.      *
  2063.      * @return the current value from the system properties map.
  2064.      */
  2065.     public static String getJavaSpecificationVersion() {
  2066.         return getProperty(JAVA_SPECIFICATION_VERSION);
  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.      * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
  2075.      * @return the current value from the system properties map.
  2076.      * @since 3.15.0
  2077.      */
  2078.     public static String getJavaSpecificationVersion(final String defaultValue) {
  2079.         return getProperty(JAVA_SPECIFICATION_VERSION, defaultValue);
  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 current value from the system properties map.
  2088.      * @since 3.15.0
  2089.      */
  2090.     public static String getJavaSystemClassLoader() {
  2091.         return getProperty(JAVA_SYSTEM_CLASS_LOADER);
  2092.     }

  2093.     /**
  2094.      * Gets the current value from the system properties map.
  2095.      * <p>
  2096.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2097.      * </p>
  2098.      *
  2099.      * @return the current value from the system properties map.
  2100.      * @since 3.15.0
  2101.      */
  2102.     public static String getJavaTimeZoneDefaultZoneRulesProvider() {
  2103.         return getProperty(JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER);
  2104.     }

  2105.     /**
  2106.      * Gets the current value from the system properties map.
  2107.      * <p>
  2108.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2109.      * </p>
  2110.      *
  2111.      * @return the current value from the system properties map.
  2112.      * @since 3.15.0
  2113.      */
  2114.     public static String getJavaUtilConcurrentForkJoinPoolCommonExceptionHandler() {
  2115.         return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER);
  2116.     }

  2117.     /**
  2118.      * Gets the current value from the system properties map.
  2119.      * <p>
  2120.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2121.      * </p>
  2122.      *
  2123.      * @return the current value from the system properties map.
  2124.      * @since 3.15.0
  2125.      */
  2126.     public static String getJavaUtilConcurrentForkJoinPoolCommonMaximumSpares() {
  2127.         return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES);
  2128.     }

  2129.     /**
  2130.      * Gets the current value from the system properties map.
  2131.      * <p>
  2132.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2133.      * </p>
  2134.      *
  2135.      * @return the current value from the system properties map.
  2136.      * @since 3.15.0
  2137.      */
  2138.     public static String getJavaUtilConcurrentForkJoinPoolCommonParallelism() {
  2139.         return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM);
  2140.     }

  2141.     /**
  2142.      * Gets the current value from the system properties map.
  2143.      * <p>
  2144.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2145.      * </p>
  2146.      *
  2147.      * @return the current value from the system properties map.
  2148.      * @since 3.15.0
  2149.      */
  2150.     public static String getJavaUtilConcurrentForkJoinPoolCommonThreadFactory() {
  2151.         return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY);
  2152.     }

  2153.     /**
  2154.      * Gets the current value from the system properties map.
  2155.      * <p>
  2156.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2157.      * </p>
  2158.      *
  2159.      * @return the current value from the system properties map.
  2160.      * @since 3.15.0
  2161.      */
  2162.     public static String getJavaUtilCurrencyData() {
  2163.         return getProperty(JAVA_UTIL_CURRENCY_DATA);
  2164.     }

  2165.     /**
  2166.      * Gets the current value from the system properties map.
  2167.      * <p>
  2168.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2169.      * </p>
  2170.      *
  2171.      * @return the current value from the system properties map.
  2172.      * @since 3.15.0
  2173.      */
  2174.     public static String getJavaUtilLoggingConfigClass() {
  2175.         return getProperty(JAVA_UTIL_LOGGING_CONFIG_CLASS);
  2176.     }

  2177.     /**
  2178.      * Gets the current value from the system properties map.
  2179.      * <p>
  2180.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2181.      * </p>
  2182.      *
  2183.      * @return the current value from the system properties map.
  2184.      * @since 3.15.0
  2185.      */
  2186.     public static String getJavaUtilLoggingConfigFile() {
  2187.         return getProperty(JAVA_UTIL_LOGGING_CONFIG_FILE);
  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 current value from the system properties map.
  2196.      * @since 3.15.0
  2197.      */
  2198.     public static String getJavaUtilLoggingSimpleFormatterFormat() {
  2199.         return getProperty(JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT);
  2200.     }

  2201.     /**
  2202.      * Gets the current value from the system properties map.
  2203.      * <p>
  2204.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2205.      * </p>
  2206.      *
  2207.      * @return the current value from the system properties map.
  2208.      */
  2209.     public static String getJavaUtilPrefsPreferencesFactory() {
  2210.         return getProperty(JAVA_UTIL_PREFS_PREFERENCES_FACTORY);
  2211.     }

  2212.     /**
  2213.      * Gets the current value from the system properties map.
  2214.      * <p>
  2215.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2216.      * </p>
  2217.      *
  2218.      * @return the current value from the system properties map.
  2219.      * @since 3.15.0
  2220.      */
  2221.     public static String getJavaUtilPropertyResourceBundleEncoding() {
  2222.         return getProperty(JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING);
  2223.     }

  2224.     /**
  2225.      * Gets the current value from the system properties map.
  2226.      * <p>
  2227.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2228.      * </p>
  2229.      *
  2230.      * @return the current value from the system properties map.
  2231.      */
  2232.     public static String getJavaVendor() {
  2233.         return getProperty(JAVA_VENDOR);
  2234.     }

  2235.     /**
  2236.      * Gets the current value from the system properties map.
  2237.      * <p>
  2238.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2239.      * </p>
  2240.      *
  2241.      * @return the current value from the system properties map.
  2242.      */
  2243.     public static String getJavaVendorUrl() {
  2244.         return getProperty(JAVA_VENDOR_URL);
  2245.     }

  2246.     /**
  2247.      * Gets the current value from the system properties map.
  2248.      * <p>
  2249.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2250.      * </p>
  2251.      *
  2252.      * @return the current value from the system properties map.
  2253.      * @since 3.15.0
  2254.      */
  2255.     public static String getJavaVendorVersion() {
  2256.         return getProperty(JAVA_VENDOR_VERSION);
  2257.     }

  2258.     /**
  2259.      * Gets the current value from the system properties map.
  2260.      * <p>
  2261.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2262.      * </p>
  2263.      *
  2264.      * @return the current value from the system properties map.
  2265.      */
  2266.     public static String getJavaVersion() {
  2267.         return getProperty(JAVA_VERSION);
  2268.     }

  2269.     /**
  2270.      * Gets the current value from the system properties map.
  2271.      * <p>
  2272.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2273.      * </p>
  2274.      *
  2275.      * @return the current value from the system properties map.
  2276.      * @since 3.15.0
  2277.      */
  2278.     public static String getJavaVersionDate() {
  2279.         return getProperty(JAVA_VERSION_DATE);
  2280.     }

  2281.     /**
  2282.      * Gets the current value from the system properties map.
  2283.      * <p>
  2284.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2285.      * </p>
  2286.      *
  2287.      * @return the current value from the system properties map.
  2288.      */
  2289.     public static String getJavaVmInfo() {
  2290.         return getProperty(JAVA_VM_INFO);
  2291.     }

  2292.     /**
  2293.      * Gets the current value from the system properties map.
  2294.      * <p>
  2295.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2296.      * </p>
  2297.      *
  2298.      * @return the current value from the system properties map.
  2299.      */
  2300.     public static String getJavaVmName() {
  2301.         return getProperty(JAVA_VM_NAME);
  2302.     }

  2303.     /**
  2304.      * Gets the current value from the system properties map.
  2305.      * <p>
  2306.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2307.      * </p>
  2308.      *
  2309.      * @return the current value from the system properties map.
  2310.      */
  2311.     public static String getJavaVmSpecificationName() {
  2312.         return getProperty(JAVA_VM_SPECIFICATION_NAME);
  2313.     }

  2314.     /**
  2315.      * Gets the current value from the system properties map.
  2316.      * <p>
  2317.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2318.      * </p>
  2319.      *
  2320.      * @return the current value from the system properties map.
  2321.      */
  2322.     public static String getJavaVmSpecificationVendor() {
  2323.         return getProperty(JAVA_VM_SPECIFICATION_VENDOR);
  2324.     }

  2325.     /**
  2326.      * Gets the current value from the system properties map.
  2327.      * <p>
  2328.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2329.      * </p>
  2330.      *
  2331.      * @return the current value from the system properties map.
  2332.      */
  2333.     public static String getJavaVmSpecificationVersion() {
  2334.         return getProperty(JAVA_VM_SPECIFICATION_VERSION);
  2335.     }

  2336.     /**
  2337.      * Gets the current value from the system properties map.
  2338.      * <p>
  2339.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2340.      * </p>
  2341.      *
  2342.      * @return the current value from the system properties map.
  2343.      */
  2344.     public static String getJavaVmVendor() {
  2345.         return getProperty(JAVA_VM_VENDOR);
  2346.     }

  2347.     /**
  2348.      * Gets the current value from the system properties map.
  2349.      * <p>
  2350.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2351.      * </p>
  2352.      *
  2353.      * @return the current value from the system properties map.
  2354.      */
  2355.     public static String getJavaVmVersion() {
  2356.         return getProperty(JAVA_VM_VERSION);
  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 current value from the system properties map.
  2365.      * @since 3.15.0
  2366.      */
  2367.     public static String getJavaxAccessibilityAssistiveTechnologies() {
  2368.         return getProperty(JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES);
  2369.     }

  2370.     /**
  2371.      * Gets the current value from the system properties map.
  2372.      * <p>
  2373.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2374.      * </p>
  2375.      *
  2376.      * @return the current value from the system properties map.
  2377.      * @since 3.15.0
  2378.      */
  2379.     public static String getJavaXmlConfigFile() {
  2380.         return getProperty(JAVA_XML_CONFIG_FILE);
  2381.     }

  2382.     /**
  2383.      * Gets the current value from the system properties map.
  2384.      * <p>
  2385.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2386.      * </p>
  2387.      *
  2388.      * @return the current value from the system properties map.
  2389.      * @since 3.15.0
  2390.      */
  2391.     public static String getJavaxNetSslSessionCacheSize() {
  2392.         return getProperty(JAVAX_NET_SSL_SESSION_CACHE_SIZE);
  2393.     }

  2394.     /**
  2395.      * Gets the current value from the system properties map.
  2396.      * <p>
  2397.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2398.      * </p>
  2399.      *
  2400.      * @return the current value from the system properties map.
  2401.      * @since 3.15.0
  2402.      */
  2403.     public static String getJavaxRmiSslClientEnabledCipherSuites() {
  2404.         return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES);
  2405.     }

  2406.     /**
  2407.      * Gets the current value from the system properties map.
  2408.      * <p>
  2409.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2410.      * </p>
  2411.      *
  2412.      * @return the current value from the system properties map.
  2413.      * @since 3.15.0
  2414.      */
  2415.     public static String getJavaxRmiSslClientEnabledProtocols() {
  2416.         return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS);
  2417.     }

  2418.     /**
  2419.      * Gets the current value from the system properties map.
  2420.      * <p>
  2421.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2422.      * </p>
  2423.      *
  2424.      * @return the current value from the system properties map.
  2425.      * @since 3.15.0
  2426.      */
  2427.     public static String getJavaxSecurityAuthUseSubjectCredsOnly() {
  2428.         return getProperty(JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY);
  2429.     }

  2430.     /**
  2431.      * Gets the current value from the system properties map.
  2432.      * <p>
  2433.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2434.      * </p>
  2435.      *
  2436.      * @return the current value from the system properties map.
  2437.      * @since 3.15.0
  2438.      */
  2439.     public static String getJavaxSmartCardIoTerminalFactoryDefaultType() {
  2440.         return getProperty(JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE);
  2441.     }

  2442.     /**
  2443.      * Gets the current value from the system properties map.
  2444.      * <p>
  2445.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2446.      * </p>
  2447.      *
  2448.      * @return the current value from the system properties map.
  2449.      * @since 3.15.0
  2450.      */
  2451.     public static String getJdbcDrivers() {
  2452.         return getProperty(JDBC_DRIVERS);
  2453.     }

  2454.     /**
  2455.      * Gets the current value from the system properties map.
  2456.      * <p>
  2457.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2458.      * </p>
  2459.      *
  2460.      * @return the current value from the system properties map.
  2461.      * @since 3.15.0
  2462.      */
  2463.     public static String getJdkHttpAuthProxyingDisabledSchemes() {
  2464.         return getProperty(JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES);
  2465.     }

  2466.     /**
  2467.      * Gets the current value from the system properties map.
  2468.      * <p>
  2469.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2470.      * </p>
  2471.      *
  2472.      * @return the current value from the system properties map.
  2473.      * @since 3.15.0
  2474.      */
  2475.     public static String getJdkHttpAuthTunnelingDisabledSchemes() {
  2476.         return getProperty(JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES);
  2477.     }

  2478.     /**
  2479.      * Gets the current value from the system properties map.
  2480.      * <p>
  2481.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2482.      * </p>
  2483.      *
  2484.      * @return the current value from the system properties map.
  2485.      * @since 3.15.0
  2486.      */
  2487.     public static String getJdkHttpClientAllowRestrictedHeaders() {
  2488.         return getProperty(JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS);
  2489.     }

  2490.     /**
  2491.      * Gets the current value from the system properties map.
  2492.      * <p>
  2493.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2494.      * </p>
  2495.      *
  2496.      * @return the current value from the system properties map.
  2497.      * @since 3.15.0
  2498.      */
  2499.     public static String getJdkHttpClientAuthRetryLimit() {
  2500.         return getProperty(JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT);
  2501.     }

  2502.     /**
  2503.      * Gets the current value from the system properties map.
  2504.      * <p>
  2505.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2506.      * </p>
  2507.      *
  2508.      * @return the current value from the system properties map.
  2509.      * @since 3.15.0
  2510.      */
  2511.     public static String getJdkHttpClientBufSize() {
  2512.         return getProperty(JDK_HTTP_CLIENT_BUF_SIZE);
  2513.     }

  2514.     /**
  2515.      * Gets the current value from the system properties map.
  2516.      * <p>
  2517.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2518.      * </p>
  2519.      *
  2520.      * @return the current value from the system properties map.
  2521.      * @since 3.15.0
  2522.      */
  2523.     public static String getJdkHttpClientConnectionPoolSize() {
  2524.         return getProperty(JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE);
  2525.     }

  2526.     /**
  2527.      * Gets the current value from the system properties map.
  2528.      * <p>
  2529.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2530.      * </p>
  2531.      *
  2532.      * @return the current value from the system properties map.
  2533.      * @since 3.15.0
  2534.      */
  2535.     public static String getJdkHttpClientConnectionWindowSize() {
  2536.         return getProperty(JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE);
  2537.     }

  2538.     /**
  2539.      * Gets the current value from the system properties map.
  2540.      * <p>
  2541.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2542.      * </p>
  2543.      *
  2544.      * @return the current value from the system properties map.
  2545.      * @since 3.15.0
  2546.      */
  2547.     public static String getJdkHttpClientDisableRetryConnect() {
  2548.         return getProperty(JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT);
  2549.     }

  2550.     /**
  2551.      * Gets the current value from the system properties map.
  2552.      * <p>
  2553.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2554.      * </p>
  2555.      *
  2556.      * @return the current value from the system properties map.
  2557.      * @since 3.15.0
  2558.      */
  2559.     public static String getJdkHttpClientEnableAllMethodRetry() {
  2560.         return getProperty(JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY);
  2561.     }

  2562.     /**
  2563.      * Gets the current value from the system properties map.
  2564.      * <p>
  2565.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2566.      * </p>
  2567.      *
  2568.      * @return the current value from the system properties map.
  2569.      * @since 3.15.0
  2570.      */
  2571.     public static String getJdkHttpClientEnablePush() {
  2572.         return getProperty(JDK_HTTP_CLIENT_ENABLE_PUSH);
  2573.     }

  2574.     /**
  2575.      * Gets the current value from the system properties map.
  2576.      * <p>
  2577.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2578.      * </p>
  2579.      *
  2580.      * @return the current value from the system properties map.
  2581.      * @since 3.15.0
  2582.      */
  2583.     public static String getJdkHttpClientHpackMaxHeaderTableSize() {
  2584.         return getProperty(JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE);
  2585.     }

  2586.     /**
  2587.      * Gets the current value from the system properties map.
  2588.      * <p>
  2589.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2590.      * </p>
  2591.      *
  2592.      * @return the current value from the system properties map.
  2593.      * @since 3.15.0
  2594.      */
  2595.     public static String getJdkHttpClientHttpClientLog() {
  2596.         return getProperty(JDK_HTTP_CLIENT_HTTP_CLIENT_LOG);
  2597.     }

  2598.     /**
  2599.      * Gets the current value from the system properties map.
  2600.      * <p>
  2601.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2602.      * </p>
  2603.      *
  2604.      * @return the current value from the system properties map.
  2605.      * @since 3.15.0
  2606.      */
  2607.     public static String getJdkHttpClientKeepAliveTimeout() {
  2608.         return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT);
  2609.     }

  2610.     /**
  2611.      * Gets the current value from the system properties map.
  2612.      * <p>
  2613.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2614.      * </p>
  2615.      *
  2616.      * @return the current value from the system properties map.
  2617.      * @since 3.15.0
  2618.      */
  2619.     public static String getJdkHttpClientKeepAliveTimeoutH2() {
  2620.         return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2);
  2621.     }

  2622.     /**
  2623.      * Gets the current value from the system properties map.
  2624.      * <p>
  2625.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2626.      * </p>
  2627.      *
  2628.      * @return the current value from the system properties map.
  2629.      * @since 3.15.0
  2630.      */
  2631.     public static String getJdkHttpClientMaxFrameSize() {
  2632.         return getProperty(JDK_HTTP_CLIENT_MAX_FRAME_SIZE);
  2633.     }

  2634.     /**
  2635.      * Gets the current value from the system properties map.
  2636.      * <p>
  2637.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2638.      * </p>
  2639.      *
  2640.      * @return the current value from the system properties map.
  2641.      * @since 3.15.0
  2642.      */
  2643.     public static String getJdkHttpClientMaxStreams() {
  2644.         return getProperty(JDK_HTTP_CLIENT_MAX_STREAMS);
  2645.     }

  2646.     /**
  2647.      * Gets the current value from the system properties map.
  2648.      * <p>
  2649.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2650.      * </p>
  2651.      *
  2652.      * @return the current value from the system properties map.
  2653.      * @since 3.15.0
  2654.      */
  2655.     public static String getJdkHttpClientReceiveBufferSize() {
  2656.         return getProperty(JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE);
  2657.     }

  2658.     /**
  2659.      * Gets the current value from the system properties map.
  2660.      * <p>
  2661.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2662.      * </p>
  2663.      *
  2664.      * @return the current value from the system properties map.
  2665.      * @since 3.15.0
  2666.      */
  2667.     public static String getJdkHttpClientRedirectsRetryLimit() {
  2668.         return getProperty(JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT);
  2669.     }

  2670.     /**
  2671.      * Gets the current value from the system properties map.
  2672.      * <p>
  2673.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2674.      * </p>
  2675.      *
  2676.      * @return the current value from the system properties map.
  2677.      * @since 3.15.0
  2678.      */
  2679.     public static String getJdkHttpClientSendBufferSize() {
  2680.         return getProperty(JDK_HTTP_CLIENT_SEND_BUFFER_SIZE);
  2681.     }

  2682.     /**
  2683.      * Gets the current value from the system properties map.
  2684.      * <p>
  2685.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2686.      * </p>
  2687.      *
  2688.      * @return the current value from the system properties map.
  2689.      * @since 3.15.0
  2690.      */
  2691.     public static String getJdkHttpClientWebSocketWriteBufferSize() {
  2692.         return getProperty(JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE);
  2693.     }

  2694.     /**
  2695.      * Gets the current value from the system properties map.
  2696.      * <p>
  2697.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2698.      * </p>
  2699.      *
  2700.      * @return the current value from the system properties map.
  2701.      * @since 3.15.0
  2702.      */
  2703.     public static String getJdkHttpClientWindowSize() {
  2704.         return getProperty(JDK_HTTP_CLIENT_WINDOW_SIZE);
  2705.     }

  2706.     /**
  2707.      * Gets the current value from the system properties map.
  2708.      * <p>
  2709.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2710.      * </p>
  2711.      *
  2712.      * @return the current value from the system properties map.
  2713.      * @since 3.15.0
  2714.      */
  2715.     public static String getJdkHttpServerMaxConnections() {
  2716.         return getProperty(JDK_HTTP_SERVER_MAX_CONNECTIONS);
  2717.     }

  2718.     /**
  2719.      * Gets the current value from the system properties map.
  2720.      * <p>
  2721.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2722.      * </p>
  2723.      *
  2724.      * @return the current value from the system properties map.
  2725.      * @since 3.15.0
  2726.      */
  2727.     public static String getJdkHttpsNegotiateCbt() {
  2728.         return getProperty(JDK_HTTPS_NEGOTIATE_CBT);
  2729.     }

  2730.     /**
  2731.      * Gets the current value from the system properties map.
  2732.      * <p>
  2733.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2734.      * </p>
  2735.      *
  2736.      * @return the current value from the system properties map.
  2737.      * @since 3.15.0
  2738.      */
  2739.     public static String getJdkIncludeInExceptions() {
  2740.         return getProperty(JDK_INCLUDE_IN_EXCEPTIONS);
  2741.     }

  2742.     /**
  2743.      * Gets the current value from the system properties map.
  2744.      * <p>
  2745.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2746.      * </p>
  2747.      *
  2748.      * @return the current value from the system properties map.
  2749.      * @since 3.15.0
  2750.      */
  2751.     public static String getJdkInternalHttpClientDisableHostNameVerification() {
  2752.         return getProperty(JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION);
  2753.     }

  2754.     /**
  2755.      * Gets the current value from the system properties map.
  2756.      * <p>
  2757.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2758.      * </p>
  2759.      *
  2760.      * @return the current value from the system properties map.
  2761.      * @since 3.15.0
  2762.      */
  2763.     public static String getJdkIoPermissionsUseCanonicalPath() {
  2764.         return getProperty(JDK_IO_PERMISSIONS_USE_CANONICAL_PATH);
  2765.     }

  2766.     /**
  2767.      * Gets the current value from the system properties map.
  2768.      * <p>
  2769.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2770.      * </p>
  2771.      *
  2772.      * @return the current value from the system properties map.
  2773.      * @since 3.15.0
  2774.      */
  2775.     public static String getJdkJndiLdapObjectFactoriesFilter() {
  2776.         return getProperty(JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER);
  2777.     }

  2778.     /**
  2779.      * Gets the current value from the system properties map.
  2780.      * <p>
  2781.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2782.      * </p>
  2783.      *
  2784.      * @return the current value from the system properties map.
  2785.      * @since 3.15.0
  2786.      */
  2787.     public static String getJdkJndiObjectFactoriesFilter() {
  2788.         return getProperty(JDK_JNDI_OBJECT_FACTORIES_FILTER);
  2789.     }

  2790.     /**
  2791.      * Gets the current value from the system properties map.
  2792.      * <p>
  2793.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2794.      * </p>
  2795.      *
  2796.      * @return the current value from the system properties map.
  2797.      * @since 3.15.0
  2798.      */
  2799.     public static String getJdkJndiRmiObjectFactoriesFilter() {
  2800.         return getProperty(JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER);
  2801.     }

  2802.     /**
  2803.      * Gets the current value from the system properties map.
  2804.      * <p>
  2805.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2806.      * </p>
  2807.      *
  2808.      * @return the current value from the system properties map.
  2809.      * @since 3.15.0
  2810.      */
  2811.     public static String getJdkModuleMain() {
  2812.         return getProperty(JDK_MODULE_MAIN);
  2813.     }

  2814.     /**
  2815.      * Gets the current value from the system properties map.
  2816.      * <p>
  2817.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2818.      * </p>
  2819.      *
  2820.      * @return the current value from the system properties map.
  2821.      * @since 3.15.0
  2822.      */
  2823.     public static String getJdkModuleMainClass() {
  2824.         return getProperty(JDK_MODULE_MAIN_CLASS);
  2825.     }

  2826.     /**
  2827.      * Gets the current value from the system properties map.
  2828.      * <p>
  2829.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2830.      * </p>
  2831.      *
  2832.      * @return the current value from the system properties map.
  2833.      * @since 3.15.0
  2834.      */
  2835.     public static String getJdkModulePath() {
  2836.         return getProperty(JDK_MODULE_PATH);
  2837.     }

  2838.     /**
  2839.      * Gets the current value from the system properties map.
  2840.      * <p>
  2841.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2842.      * </p>
  2843.      *
  2844.      * @return the current value from the system properties map.
  2845.      * @since 3.15.0
  2846.      */
  2847.     public static String getJdkModuleUpgradePath() {
  2848.         return getProperty(JDK_MODULE_UPGRADE_PATH);
  2849.     }

  2850.     /**
  2851.      * Gets the current value from the system properties map.
  2852.      * <p>
  2853.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2854.      * </p>
  2855.      *
  2856.      * @return the current value from the system properties map.
  2857.      * @since 3.15.0
  2858.      */
  2859.     public static String getJdkNetUnixDomainTmpDir() {
  2860.         return getProperty(JDK_NET_UNIX_DOMAIN_TMPDIR);
  2861.     }

  2862.     /**
  2863.      * Gets the current value from the system properties map.
  2864.      * <p>
  2865.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2866.      * </p>
  2867.      *
  2868.      * @return the current value from the system properties map.
  2869.      * @since 3.15.0
  2870.      */
  2871.     public static String getJdkNetUrlClassPathShowIgnoredClassPathEntries() {
  2872.         return getProperty(JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES);
  2873.     }

  2874.     /**
  2875.      * Gets the current value from the system properties map.
  2876.      * <p>
  2877.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2878.      * </p>
  2879.      *
  2880.      * @return the current value from the system properties map.
  2881.      * @since 3.15.0
  2882.      */
  2883.     public static String getJdkSerialFilter() {
  2884.         return getProperty(JDK_SERIAL_FILTER);
  2885.     }

  2886.     /**
  2887.      * Gets the current value from the system properties map.
  2888.      * <p>
  2889.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2890.      * </p>
  2891.      *
  2892.      * @return the current value from the system properties map.
  2893.      * @since 3.15.0
  2894.      */
  2895.     public static String getJdkSerialFilterFactory() {
  2896.         return getProperty(JDK_SERIAL_FILTER_FACTORY);
  2897.     }

  2898.     /**
  2899.      * Gets the current value from the system properties map.
  2900.      * <p>
  2901.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2902.      * </p>
  2903.      *
  2904.      * @return the current value from the system properties map.
  2905.      * @since 3.15.0
  2906.      */
  2907.     public static String getJdkTlsClientSignatureSchemes() {
  2908.         return getProperty(JDK_TLS_CLIENT_SIGNATURE_SCHEMES);
  2909.     }

  2910.     /**
  2911.      * Gets the current value from the system properties map.
  2912.      * <p>
  2913.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2914.      * </p>
  2915.      *
  2916.      * @return the current value from the system properties map.
  2917.      * @since 3.15.0
  2918.      */
  2919.     public static String getJdkTlsNamedGroups() {
  2920.         return getProperty(JDK_TLS_NAMED_GROUPS);
  2921.     }

  2922.     /**
  2923.      * Gets the current value from the system properties map.
  2924.      * <p>
  2925.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2926.      * </p>
  2927.      *
  2928.      * @return the current value from the system properties map.
  2929.      * @since 3.15.0
  2930.      */
  2931.     public static String getJdkTlsServerSignatureSchemes() {
  2932.         return getProperty(JDK_TLS_SERVER_SIGNATURE_SCHEMES);
  2933.     }

  2934.     /**
  2935.      * Gets the current value from the system properties map.
  2936.      * <p>
  2937.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2938.      * </p>
  2939.      *
  2940.      * @return the current value from the system properties map.
  2941.      * @since 3.15.0
  2942.      */
  2943.     public static String getJdkVirtualThreadSchedulerMaxPoolSize() {
  2944.         return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE);
  2945.     }

  2946.     /**
  2947.      * Gets the current value from the system properties map.
  2948.      * <p>
  2949.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2950.      * </p>
  2951.      *
  2952.      * @return the current value from the system properties map.
  2953.      * @since 3.15.0
  2954.      */
  2955.     public static String getJdkVirtualThreadSchedulerParallelism() {
  2956.         return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM);
  2957.     }

  2958.     /**
  2959.      * Gets the current value from the system properties map.
  2960.      * <p>
  2961.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2962.      * </p>
  2963.      *
  2964.      * @return the current value from the system properties map.
  2965.      * @since 3.15.0
  2966.      */
  2967.     public static String getJdkXmlCdataChunkSize() {
  2968.         return getProperty(JDK_XML_CDATA_CHUNK_SIZE);
  2969.     }

  2970.     /**
  2971.      * Gets the current value from the system properties map.
  2972.      * <p>
  2973.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2974.      * </p>
  2975.      *
  2976.      * @return the current value from the system properties map.
  2977.      * @since 3.15.0
  2978.      */
  2979.     public static String getJdkXmlDtdSupport() {
  2980.         return getProperty(JDK_XML_DTD_SUPPORT);
  2981.     }

  2982.     /**
  2983.      * Gets the current value from the system properties map.
  2984.      * <p>
  2985.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2986.      * </p>
  2987.      *
  2988.      * @return the current value from the system properties map.
  2989.      * @since 3.15.0
  2990.      */
  2991.     public static String getJdkXmlElementAttributeLimit() {
  2992.         return getProperty(JDK_XML_ELEMENT_ATTRIBUTE_LIMIT);
  2993.     }

  2994.     /**
  2995.      * Gets the current value from the system properties map.
  2996.      * <p>
  2997.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  2998.      * </p>
  2999.      *
  3000.      * @return the current value from the system properties map.
  3001.      * @since 3.15.0
  3002.      */
  3003.     public static String getJdkXmlEnableExtensionFunctions() {
  3004.         return getProperty(JDK_XML_ENABLE_EXTENSION_FUNCTIONS);
  3005.     }

  3006.     /**
  3007.      * Gets the current value from the system properties map.
  3008.      * <p>
  3009.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3010.      * </p>
  3011.      *
  3012.      * @return the current value from the system properties map.
  3013.      * @since 3.15.0
  3014.      */
  3015.     public static String getJdkXmlEntityExpansionLimit() {
  3016.         return getProperty(JDK_XML_ENTITY_EXPANSION_LIMIT);
  3017.     }

  3018.     /**
  3019.      * Gets the current value from the system properties map.
  3020.      * <p>
  3021.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3022.      * </p>
  3023.      *
  3024.      * @return the current value from the system properties map.
  3025.      * @since 3.15.0
  3026.      */
  3027.     public static String getJdkXmlEntityReplacementLimit() {
  3028.         return getProperty(JDK_XML_ENTITY_REPLACEMENT_LIMIT);
  3029.     }

  3030.     /**
  3031.      * Gets the current value from the system properties map.
  3032.      * <p>
  3033.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3034.      * </p>
  3035.      *
  3036.      * @return the current value from the system properties map.
  3037.      * @since 3.15.0
  3038.      */
  3039.     public static String getJdkXmlIsStandalone() {
  3040.         return getProperty(JDK_XML_IS_STANDALONE);
  3041.     }

  3042.     /**
  3043.      * Gets the current value from the system properties map.
  3044.      * <p>
  3045.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3046.      * </p>
  3047.      *
  3048.      * @return the current value from the system properties map.
  3049.      * @since 3.15.0
  3050.      */
  3051.     public static String getJdkXmlJdkCatalogResolve() {
  3052.         return getProperty(JDK_XML_JDK_CATALOG_RESOLVE);
  3053.     }

  3054.     /**
  3055.      * Gets the current value from the system properties map.
  3056.      * <p>
  3057.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3058.      * </p>
  3059.      *
  3060.      * @return the current value from the system properties map.
  3061.      * @since 3.15.0
  3062.      */
  3063.     public static String getJdkXmlMaxElementDepth() {
  3064.         return getProperty(JDK_XML_MAX_ELEMENT_DEPTH);
  3065.     }

  3066.     /**
  3067.      * Gets the current value from the system properties map.
  3068.      * <p>
  3069.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3070.      * </p>
  3071.      *
  3072.      * @return the current value from the system properties map.
  3073.      * @since 3.15.0
  3074.      */
  3075.     public static String getJdkXmlMaxGeneralEntitySizeLimit() {
  3076.         return getProperty(JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT);
  3077.     }

  3078.     /**
  3079.      * Gets the current value from the system properties map.
  3080.      * <p>
  3081.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3082.      * </p>
  3083.      *
  3084.      * @return the current value from the system properties map.
  3085.      * @since 3.15.0
  3086.      */
  3087.     public static String getJdkXmlMaxOccurLimit() {
  3088.         return getProperty(JDK_XML_MAX_OCCUR_LIMIT);
  3089.     }

  3090.     /**
  3091.      * Gets the current value from the system properties map.
  3092.      * <p>
  3093.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3094.      * </p>
  3095.      *
  3096.      * @return the current value from the system properties map.
  3097.      * @since 3.15.0
  3098.      */
  3099.     public static String getJdkXmlMaxParameterEntitySizeLimit() {
  3100.         return getProperty(JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT);
  3101.     }

  3102.     /**
  3103.      * Gets the current value from the system properties map.
  3104.      * <p>
  3105.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3106.      * </p>
  3107.      *
  3108.      * @return the current value from the system properties map.
  3109.      * @since 3.15.0
  3110.      */
  3111.     public static String getJdkXmlMaxXmlNameLimit() {
  3112.         return getProperty(JDK_XML_MAX_XML_NAME_LIMIT);
  3113.     }

  3114.     /**
  3115.      * Gets the current value from the system properties map.
  3116.      * <p>
  3117.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3118.      * </p>
  3119.      *
  3120.      * @return the current value from the system properties map.
  3121.      * @since 3.15.0
  3122.      */
  3123.     public static String getJdkXmlOverrideDefaultParser() {
  3124.         return getProperty(JDK_XML_OVERRIDE_DEFAULT_PARSER);
  3125.     }

  3126.     /**
  3127.      * Gets the current value from the system properties map.
  3128.      * <p>
  3129.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3130.      * </p>
  3131.      *
  3132.      * @return the current value from the system properties map.
  3133.      * @since 3.15.0
  3134.      */
  3135.     public static String getJdkXmlResetSymbolTable() {
  3136.         return getProperty(JDK_XML_RESET_SYMBOL_TABLE);
  3137.     }

  3138.     /**
  3139.      * Gets the current value from the system properties map.
  3140.      * <p>
  3141.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3142.      * </p>
  3143.      *
  3144.      * @return the current value from the system properties map.
  3145.      * @since 3.15.0
  3146.      */
  3147.     public static String getJdkXmlTotalEntitySizeLimit() {
  3148.         return getProperty(JDK_XML_TOTAL_ENTITY_SIZE_LIMIT);
  3149.     }

  3150.     /**
  3151.      * Gets the current value from the system properties map.
  3152.      * <p>
  3153.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3154.      * </p>
  3155.      *
  3156.      * @return the current value from the system properties map.
  3157.      * @since 3.15.0
  3158.      */
  3159.     public static String getJdkXmlXsltcIsStandalone() {
  3160.         return getProperty(JDK_XML_XSLTC_IS_STANDALONE);
  3161.     }

  3162.     /**
  3163.      * Gets the current value from the system properties map.
  3164.      * <p>
  3165.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3166.      * </p>
  3167.      *
  3168.      * @return the current value from the system properties map.
  3169.      */
  3170.     public static String getLineSeparator() {
  3171.         return getProperty(LINE_SEPARATOR);
  3172.     }

  3173.     /**
  3174.      * Gets the current value from the system properties map.
  3175.      * <p>
  3176.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3177.      * </p>
  3178.      *
  3179.      * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
  3180.      * @return the current value from the system properties map.
  3181.      * @since 3.15.0
  3182.      */
  3183.     public static String getLineSeparator(final Supplier<String> defaultIfAbsent) {
  3184.         return getProperty(LINE_SEPARATOR, defaultIfAbsent);
  3185.     }

  3186.     /**
  3187.      * Gets the current value for the property named {@code key} as a {@code long}.
  3188.      *
  3189.      * @param key             The key
  3190.      * @param defaultIfAbsent The default value
  3191.      * @return a {@code long} or defaultIfAbsent
  3192.      */
  3193.     public static long getLong(final String key, final LongSupplier defaultIfAbsent) {
  3194.         final String str = getProperty(key);
  3195.         return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsLong() : 0 : Long.parseLong(str);
  3196.     }

  3197.     /**
  3198.      * Gets the current value from the system properties map.
  3199.      * <p>
  3200.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3201.      * </p>
  3202.      *
  3203.      * @return the current value from the system properties map.
  3204.      * @since 3.15.0
  3205.      */
  3206.     public static String getNativeEncoding() {
  3207.         return getProperty(NATIVE_ENCODING);
  3208.     }

  3209.     /**
  3210.      * Gets the current value from the system properties map.
  3211.      * <p>
  3212.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3213.      * </p>
  3214.      *
  3215.      * @return the current value from the system properties map.
  3216.      * @since 3.15.0
  3217.      */
  3218.     public static String getNetworkAddressCacheNegativeTtl() {
  3219.         return getProperty(NETWORK_ADDRESS_CACHE_NEGATIVE_TTL);
  3220.     }

  3221.     /**
  3222.      * Gets the current value from the system properties map.
  3223.      * <p>
  3224.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3225.      * </p>
  3226.      *
  3227.      * @return the current value from the system properties map.
  3228.      * @since 3.15.0
  3229.      */
  3230.     public static String getNetworkAddressCacheStaleTtl() {
  3231.         return getProperty(NETWORK_ADDRESS_CACHE_STALE_TTL);
  3232.     }

  3233.     /**
  3234.      * Gets the current value from the system properties map.
  3235.      * <p>
  3236.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3237.      * </p>
  3238.      *
  3239.      * @return the current value from the system properties map.
  3240.      * @since 3.15.0
  3241.      */
  3242.     public static String getNetworkAddressCacheTtl() {
  3243.         return getProperty(NETWORK_ADDRESS_CACHE_TTL);
  3244.     }

  3245.     /**
  3246.      * Gets the current value from the system properties map.
  3247.      * <p>
  3248.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3249.      * </p>
  3250.      *
  3251.      * @return the current value from the system properties map.
  3252.      * @since 3.15.0
  3253.      */
  3254.     public static String getOrgJcpXmlDsigSecureValidation() {
  3255.         return getProperty(ORG_JCP_XML_DSIG_SECURE_VALIDATION);
  3256.     }

  3257.     /**
  3258.      * Gets the current value from the system properties map.
  3259.      * <p>
  3260.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3261.      * </p>
  3262.      *
  3263.      * @return the current value from the system properties map.
  3264.      * @since 3.15.0
  3265.      */
  3266.     public static String getOrgOpenJdkJavaUtilStreamTripwire() {
  3267.         return getProperty(ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE);
  3268.     }

  3269.     /**
  3270.      * Gets the current value from the system properties map.
  3271.      * <p>
  3272.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3273.      * </p>
  3274.      *
  3275.      * @return the current value from the system properties map.
  3276.      */
  3277.     public static String getOsArch() {
  3278.         return getProperty(OS_ARCH);
  3279.     }

  3280.     /**
  3281.      * Gets the current value from the system properties map.
  3282.      * <p>
  3283.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3284.      * </p>
  3285.      *
  3286.      * @return the current value from the system properties map.
  3287.      */
  3288.     public static String getOsName() {
  3289.         return getProperty(OS_NAME);
  3290.     }

  3291.     /**
  3292.      * Gets the current value from the system properties map.
  3293.      * <p>
  3294.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3295.      * </p>
  3296.      *
  3297.      * @return the current value from the system properties map.
  3298.      */
  3299.     public static String getOsVersion() {
  3300.         return getProperty(OS_VERSION);
  3301.     }

  3302.     /**
  3303.      * Gets the current value from the system properties map.
  3304.      * <p>
  3305.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3306.      * </p>
  3307.      *
  3308.      * @return the current value from the system properties map.
  3309.      */
  3310.     public static String getPathSeparator() {
  3311.         return getProperty(PATH_SEPARATOR);
  3312.     }

  3313.     /**
  3314.      * Gets a System property, defaulting to {@code null} if the property cannot be read.
  3315.      * <p>
  3316.      * If a {@link SecurityException} is caught, the return value is {@code null}.
  3317.      * </p>
  3318.      *
  3319.      * @param property the system property name
  3320.      * @return the system property value or {@code null} if a security problem occurs
  3321.      */
  3322.     public static String getProperty(final String property) {
  3323.         return getProperty(property, Suppliers.nul());
  3324.     }

  3325.     /**
  3326.      * Gets a System property, defaulting to {@code null} if the property cannot be read.
  3327.      * <p>
  3328.      * If a {@link SecurityException} is caught, the return value is {@code null}.
  3329.      * </p>
  3330.      *
  3331.      * @param property        the system property name.
  3332.      * @param defaultIfAbsent use this value when the property is empty or throws SecurityException.
  3333.      * @return the system property value or {@code null} if a security problem occurs
  3334.      */
  3335.     static String getProperty(final String property, final String defaultIfAbsent) {
  3336.         return getProperty(property, () -> defaultIfAbsent);
  3337.     }

  3338.     /**
  3339.      * Gets a System property, defaulting to {@code null} if the property cannot be read.
  3340.      * <p>
  3341.      * If a {@link SecurityException} is caught, the return value is {@code null}.
  3342.      * </p>
  3343.      *
  3344.      * @param property        the system property name.
  3345.      * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
  3346.      * @return the system property value or {@code null} if a security problem occurs
  3347.      */
  3348.     static String getProperty(final String property, final Supplier<String> defaultIfAbsent) {
  3349.         try {
  3350.             if (StringUtils.isEmpty(property)) {
  3351.                 return Suppliers.get(defaultIfAbsent);
  3352.             }
  3353.             final String value = System.getProperty(property);
  3354.             return StringUtils.getIfEmpty(value, defaultIfAbsent);
  3355.         } catch (final SecurityException ignore) {
  3356.             // We are not allowed to look at this property.
  3357.             //
  3358.             // System.err.println("Caught a SecurityException reading the system property '" + property
  3359.             // + "'; the SystemUtils property value will default to null.");
  3360.             return defaultIfAbsent.get();
  3361.         }
  3362.     }

  3363.     /**
  3364.      * Gets the current value from the system properties map.
  3365.      * <p>
  3366.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3367.      * </p>
  3368.      *
  3369.      * @return the current value from the system properties map.
  3370.      * @since 3.15.0
  3371.      */
  3372.     public static String getSocksProxyHost() {
  3373.         return getProperty(SOCKS_PROXY_HOST);
  3374.     }

  3375.     /**
  3376.      * Gets the current value from the system properties map.
  3377.      * <p>
  3378.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3379.      * </p>
  3380.      *
  3381.      * @return the current value from the system properties map.
  3382.      * @since 3.15.0
  3383.      */
  3384.     public static String getSocksProxyPort() {
  3385.         return getProperty(SOCKS_PROXY_PORT);
  3386.     }

  3387.     /**
  3388.      * Gets the current value from the system properties map.
  3389.      * <p>
  3390.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3391.      * </p>
  3392.      *
  3393.      * @return the current value from the system properties map.
  3394.      * @since 3.15.0
  3395.      */
  3396.     public static String getSocksProxyVersion() {
  3397.         return getProperty(SOCKS_PROXY_VERSION);
  3398.     }

  3399.     /**
  3400.      * Gets the current value from the system properties map.
  3401.      * <p>
  3402.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3403.      * </p>
  3404.      *
  3405.      * @return the current value from the system properties map.
  3406.      * @since 3.15.0
  3407.      */
  3408.     public static String getStdErrEncoding() {
  3409.         return getProperty(STDERR_ENCODING);
  3410.     }

  3411.     /**
  3412.      * Gets the current value from the system properties map.
  3413.      * <p>
  3414.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3415.      * </p>
  3416.      *
  3417.      * @return the current value from the system properties map.
  3418.      * @since 3.15.0
  3419.      */
  3420.     public static String getStdOutEncoding() {
  3421.         return getProperty(STDOUT_ENCODING);
  3422.     }

  3423.     /**
  3424.      * Gets the current value from the system properties map.
  3425.      * <p>
  3426.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3427.      * </p>
  3428.      *
  3429.      * @return the current value from the system properties map.
  3430.      * @since 3.15.0
  3431.      */
  3432.     public static String getSunNetHttpServerDrainAmount() {
  3433.         return getProperty(SUN_NET_HTTP_SERVER_DRAIN_AMOUNT);
  3434.     }

  3435.     /**
  3436.      * Gets the current value from the system properties map.
  3437.      * <p>
  3438.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3439.      * </p>
  3440.      *
  3441.      * @return the current value from the system properties map.
  3442.      * @since 3.15.0
  3443.      */
  3444.     public static String getSunNetHttpServerIdleInterval() {
  3445.         return getProperty(SUN_NET_HTTP_SERVER_IDLE_INTERVAL);
  3446.     }

  3447.     /**
  3448.      * Gets the current value from the system properties map.
  3449.      * <p>
  3450.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3451.      * </p>
  3452.      *
  3453.      * @return the current value from the system properties map.
  3454.      * @since 3.15.0
  3455.      */
  3456.     public static String getSunNetHttpServerMaxIdleConnections() {
  3457.         return getProperty(SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS);
  3458.     }

  3459.     /**
  3460.      * Gets the current value from the system properties map.
  3461.      * <p>
  3462.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3463.      * </p>
  3464.      *
  3465.      * @return the current value from the system properties map.
  3466.      * @since 3.15.0
  3467.      */
  3468.     public static String getSunNetHttpServerMaxReqHeaders() {
  3469.         return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS);
  3470.     }

  3471.     /**
  3472.      * Gets the current value from the system properties map.
  3473.      * <p>
  3474.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3475.      * </p>
  3476.      *
  3477.      * @return the current value from the system properties map.
  3478.      * @since 3.15.0
  3479.      */
  3480.     public static String getSunNetHttpServerMaxReqTime() {
  3481.         return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_TIME);
  3482.     }

  3483.     /**
  3484.      * Gets the current value from the system properties map.
  3485.      * <p>
  3486.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3487.      * </p>
  3488.      *
  3489.      * @return the current value from the system properties map.
  3490.      * @since 3.15.0
  3491.      */
  3492.     public static String getSunNetHttpServerMaxRspTime() {
  3493.         return getProperty(SUN_NET_HTTP_SERVER_MAX_RSP_TIME);
  3494.     }

  3495.     /**
  3496.      * Gets the current value from the system properties map.
  3497.      * <p>
  3498.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3499.      * </p>
  3500.      *
  3501.      * @return the current value from the system properties map.
  3502.      * @since 3.15.0
  3503.      */
  3504.     public static String getSunNetHttpServerNoDelay() {
  3505.         return getProperty(SUN_NET_HTTP_SERVER_NO_DELAY);
  3506.     }

  3507.     /**
  3508.      * Gets the current value from the system properties map.
  3509.      * <p>
  3510.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3511.      * </p>
  3512.      *
  3513.      * @return the current value from the system properties map.
  3514.      * @since 3.15.0
  3515.      */
  3516.     public static String getSunSecurityKrb5Principal() {
  3517.         return getProperty(SUN_SECURITY_KRB5_PRINCIPAL);
  3518.     }

  3519.     /**
  3520.      * Gets the current value from the system properties map.
  3521.      * <p>
  3522.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3523.      * </p>
  3524.      *
  3525.      * @return the current value from the system properties map.
  3526.      */
  3527.     public static String getUserCountry() {
  3528.         return getProperty(USER_COUNTRY);
  3529.     }

  3530.     /**
  3531.      * Gets the current value from the system properties map.
  3532.      * <p>
  3533.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3534.      * </p>
  3535.      *
  3536.      * @return the current value from the system properties map.
  3537.      */
  3538.     public static String getUserDir() {
  3539.         return getProperty(USER_DIR);
  3540.     }

  3541.     /**
  3542.      * Gets the current value from the system properties map.
  3543.      * <p>
  3544.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3545.      * </p>
  3546.      *
  3547.      * @return the current value from the system properties map.
  3548.      * @since 3.15.0
  3549.      */
  3550.     public static String getUserExtensions() {
  3551.         return getProperty(USER_EXTENSIONS);
  3552.     }

  3553.     /**
  3554.      * Gets the current value from the system properties map.
  3555.      * <p>
  3556.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3557.      * </p>
  3558.      *
  3559.      * @return the current value from the system properties map.
  3560.      */
  3561.     public static String getUserHome() {
  3562.         return getProperty(USER_HOME);
  3563.     }

  3564.     /**
  3565.      * Gets the current value from the system properties map.
  3566.      * <p>
  3567.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3568.      * </p>
  3569.      *
  3570.      * @return the current value from the system properties map.
  3571.      */
  3572.     public static String getUserLanguage() {
  3573.         return getProperty(USER_LANGUAGE);
  3574.     }

  3575.     /**
  3576.      * Gets the current value from the system properties map.
  3577.      * <p>
  3578.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3579.      * </p>
  3580.      *
  3581.      * @return the current value from the system properties map.
  3582.      */
  3583.     public static String getUserName() {
  3584.         return getProperty(USER_NAME);
  3585.     }

  3586.     /**
  3587.      * Gets the current value from the system properties map.
  3588.      * <p>
  3589.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3590.      * </p>
  3591.      *
  3592.      * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
  3593.      * @return the current value from the system properties map.
  3594.      * @since 3.15.0
  3595.      */
  3596.     public static String getUserName(final String defaultValue) {
  3597.         return getProperty(USER_NAME, defaultValue);
  3598.     }

  3599.     /**
  3600.      * Gets the current value from the system properties map.
  3601.      * <p>
  3602.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3603.      * </p>
  3604.      *
  3605.      * @return the current value from the system properties map.
  3606.      * @since 3.15.0
  3607.      */
  3608.     public static String getUserRegion() {
  3609.         return getProperty(USER_REGION);
  3610.     }

  3611.     /**
  3612.      * Gets the current value from the system properties map.
  3613.      * <p>
  3614.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3615.      * </p>
  3616.      *
  3617.      * @return the current value from the system properties map.
  3618.      * @since 3.15.0
  3619.      */
  3620.     public static String getUserScript() {
  3621.         return getProperty(USER_SCRIPT);
  3622.     }

  3623.     /**
  3624.      * Gets the current value from the system properties map.
  3625.      * <p>
  3626.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3627.      * </p>
  3628.      *
  3629.      * @return the current value from the system properties map.
  3630.      */
  3631.     public static String getUserTimezone() {
  3632.         return getProperty(USER_TIMEZONE);
  3633.     }

  3634.     /**
  3635.      * Gets the current value from the system properties map.
  3636.      * <p>
  3637.      * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
  3638.      * </p>
  3639.      *
  3640.      * @return the current value from the system properties map.
  3641.      * @since 3.15.0
  3642.      */
  3643.     public static String getUserVariant() {
  3644.         return getProperty(USER_VARIANT);
  3645.     }

  3646.     /**
  3647.      * Make private in 4.0.
  3648.      *
  3649.      * @deprecated TODO Make private in 4.0.
  3650.      */
  3651.     @Deprecated
  3652.     public SystemProperties() {
  3653.         // empty
  3654.     }
  3655. }