¿Nombre de máquina actual de Java y usuario registrado?

¿Es posible obtener el nombre del usuario actualmente conectado (Windows / Unix) y el nombre de host de la máquina?

Supongo que es solo una propiedad de alguna clase de entorno estático.

He encontrado esto para el nombre de usuario

com.sun.security.auth.module.NTSystem NTSystem = new
        com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());

y esto para el nombre de la máquina:

import java.net.InetAddress;
...
String computerName;
...
try {
    computerName = InetAddress.getLocalHost().getHostName();
}

catch(Exception ex) {
    ...
}

¿Es el primero solo para Windows?

¿Y qué hará el segundo si no tiene un nombre de host establecido?

Respuestas a la pregunta(4)

Su respuesta a la pregunta