puoi eseguire id
comando e leggere il risultato.
ad esempio:
$ id -u jigar
uscita:
1000
puoi eseguire il comando con
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) {
}
fonte
In realtà esiste un'API per questo. Non c'è bisogno di chiamare un comando shell o usare JNI, solo
def uid = new com.sun.security.auth.module.UnixSystem().getUid()
Se puoi influenzare il modo in cui viene avviata la Java VM, puoi consegnare l'uid come proprietà utente:
java -Duserid=$(id -u) CoolApp
Nella tua CoolApp, puoi semplicemente recuperare l'ID con:
System.getProperty("userid");
Saluti,
Martino.