I need my Java program to have two display modes: a GUI interface and a command line interface. If I run it in Windows, OS X, or another graphical environment I should get the GUI interface, but if I run it via SSH I should get the command line interface.
How can I detect whether a GUI can be displayed or if I should use a command line interface?
You actually have two questions:
1) Check if you run in a headless environment (no graphics). Check this method:
2) Check which OS you are running under:
However, the second (2) question will return the same name even though you operate in a headless environment.