In Java, you can use System.getProperties() to get all the system properties.

	Properties properties = System.getProperties();
	properties.forEach((k, v) -> System.out.println(k + ":" + v)); // Java 8

1. Example

DisplayApp.java

package com.favtuts.display;

import java.util.Map;
import java.util.Properties;

public class DisplayApp {

    public static void main(String[] args) {
        
        Properties properties = System.getProperties();

        // Java 8
        properties.forEach((k, v) -> System.out.println(k + ":" + v));

        // Classic way to loop a map
        // for (Map.Entry<Object, Object> entry : properties.entrySet()) {
        //     System.out.println(entry.getKey() + " : " + entry.getValue());
        // }

        // No good, output is truncated, long lines end with ...
        // properties.list(System.out);
    }
    
}

Output

sun.desktop:gnome
awt.toolkit:sun.awt.X11.XToolkit
java.specification.version:11
sun.cpu.isalist:
sun.jnu.encoding:UTF-8
java.class.path:/home/tvt/favtuts/java-core-tutorials-examples/java-misc/target/classes;
java.vm.vendor:Private Build
sun.arch.data.model:64
java.vendor.url:Unknown
user.timezone:
os.name:Linux
java.vm.specification.version:11
sun.java.launcher:SUN_STANDARD
user.country:US
sun.boot.library.path:/usr/lib/jvm/java-11-openjdk-amd64/lib
sun.java.command:com.favtuts.display.DisplayApp
jdk.debug:release
sun.cpu.endian:little
user.home:/home/tvt
user.language:en
java.specification.vendor:Oracle Corporation
java.version.date:2022-04-19
java.home:/usr/lib/jvm/java-11-openjdk-amd64
file.separator:/
java.vm.compressedOopsMode:Zero based
line.separator:

java.specification.name:Java Platform API Specification
java.vm.specification.vendor:Oracle Corporation
java.awt.graphicsenv:sun.awt.X11GraphicsEnvironment
sun.management.compiler:HotSpot 64-Bit Tiered Compilers
java.runtime.version:11.0.15+10-Ubuntu-0ubuntu0.20.04.1
user.name:tvt
path.separator::
os.version:5.13.0-40-generic
java.runtime.name:OpenJDK Runtime Environment
file.encoding:UTF-8
java.vm.name:OpenJDK 64-Bit Server VM
java.vendor.url.bug:Unknown
java.io.tmpdir:/tmp
java.version:11.0.15
user.dir:/home/tvt/favtuts/java-core-tutorials-examples
os.arch:amd64
java.vm.specification.name:Java Virtual Machine Specification
java.awt.printerjob:sun.print.PSPrinterJob
sun.os.patch.level:unknown
java.library.path:/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.vm.info:mixed mode, sharing
java.vendor:Private Build
java.vm.version:11.0.15+10-Ubuntu-0ubuntu0.20.04.1
sun.io.unicode.encoding:UnicodeLittle
java.class.version:55.0

2. Sorting

Example to display all the system properties in Alphabetical order.

DisplayApp.java

package com.favtuts.display;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.stream.Collectors;

public class DisplayApp {

    public static void main(String[] args) {
        Properties properties = System.getProperties();

        // Thanks Java 8
        LinkedHashMap<String, String> collect = properties.entrySet().stream()
                .collect(Collectors.toMap(k -> (String) k.getKey(), e -> (String) e.getValue()))
                .entrySet().stream().sorted(Map.Entry.comparingByKey())
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
                        (oldValue, newValue) -> oldValue, LinkedHashMap::new));
        
        collect.forEach((k, v) -> System.out.println(k + ":" + v));
    }
}

Output

awt.toolkit:sun.awt.X11.XToolkit
file.encoding:UTF-8
file.separator:/
java.awt.graphicsenv:sun.awt.X11GraphicsEnvironment
java.awt.printerjob:sun.print.PSPrinterJob
java.class.path:/home/tvt/favtuts/java-core-tutorials-examples/java-misc/target/classes
java.class.version:55.0
java.home:/usr/lib/jvm/java-11-openjdk-amd64
java.io.tmpdir:/tmp
java.library.path:/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.runtime.name:OpenJDK Runtime Environment
java.runtime.version:11.0.15+10-Ubuntu-0ubuntu0.20.04.1
java.specification.name:Java Platform API Specification
java.specification.vendor:Oracle Corporation
java.specification.version:11
java.vendor:Private Build
java.vendor.url:Unknown
java.vendor.url.bug:Unknown
java.version:11.0.15
java.version.date:2022-04-19
java.vm.compressedOopsMode:Zero based
java.vm.info:mixed mode, sharing
java.vm.name:OpenJDK 64-Bit Server VM
java.vm.specification.name:Java Virtual Machine Specification
java.vm.specification.vendor:Oracle Corporation
java.vm.specification.version:11
java.vm.vendor:Private Build
java.vm.version:11.0.15+10-Ubuntu-0ubuntu0.20.04.1
jdk.debug:release
line.separator:

os.arch:amd64
os.name:Linux
os.version:5.13.0-40-generic
path.separator::
sun.arch.data.model:64
sun.boot.library.path:/usr/lib/jvm/java-11-openjdk-amd64/lib
sun.cpu.endian:little
sun.cpu.isalist:
sun.desktop:gnome
sun.io.unicode.encoding:UnicodeLittle
sun.java.command:com.favtuts.display.DisplayApp
sun.java.launcher:SUN_STANDARD
sun.jnu.encoding:UTF-8
sun.management.compiler:HotSpot 64-Bit Tiered Compilers
sun.os.patch.level:unknown
user.country:US
user.dir:/home/tvt/favtuts/java-core-tutorials-examples
user.home:/home/tvt
user.language:en
user.name:tvt
user.timezone:

References

  1. Oracle doc – System Properties
  2. Java Properties file examples
  3. Java 8 – How to sort a Map
  4. Java – How to display all Environment variable

Leave a Reply

Your email address will not be published. Required fields are marked *