Get login username in java Get login username in java java java

Get login username in java


System.getProperty("user.name")


in Unix:

new com.sun.security.auth.module.UnixSystem().getUsername()

in Windows:

new com.sun.security.auth.module.NTSystem().getName()

in Solaris:

new com.sun.security.auth.module.SolarisSystem().getUsername()


inspired by @newacct's answer, a code that can be compiled in any platform:

String osName = System.getProperty( "os.name" ).toLowerCase();String className = null;String methodName = "getUsername";if( osName.contains( "windows" ) ){    className = "com.sun.security.auth.module.NTSystem";    methodName = "getName";}else if( osName.contains( "linux" ) ){    className = "com.sun.security.auth.module.UnixSystem";}else if( osName.contains( "solaris" ) || osName.contains( "sunos" ) ){    className = "com.sun.security.auth.module.SolarisSystem";}if( className != null ){    Class<?> c = Class.forName( className );    Method method = c.getDeclaredMethod( methodName );    Object o = c.newInstance();    System.out.println( method.invoke( o ) );}