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