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