Is there a way to get user's UID on Linux machine using java?
you can execute id
command and read result.
for example:
$ id -u jigar
output:
1000
you can execute command by
try {
String userName = System.getProperty("user.name");
String command = "id -u "+userName;
Process child = Runtime.getRuntime().exec(command);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
process((char)c);
}
in.close();
} catch (IOException e) {
}
source
There is actually an api for this. There is no need to call a shell command or use JNI, just
def uid = new com.sun.security.auth.module.UnixSystem().getUid()
If you can influence how the Java VM is started, you could handover the uid as a user property:
java -Duserid=$(id -u) CoolApp
In your CoolApp, you could simply fetch the ID with:
System.getProperty("userid");
Regards,
Martin.