vous pouvez exécuter id
commande et lire le résultat.
par exemple :
$ id -u jigar
sortie :
1000
vous pouvez exécuter la commande en
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) {
}
sources
Il existe en fait une API pour cela. Il n'est pas nécessaire d'appeler une commande shell ou d'utiliser JNI, juste
def uid = new com.sun.security.auth.module.UnixSystem().getUid()
Si vous pouvez influencer le démarrage de la machine virtuelle Java, vous pouvez transférer l'uid en tant que propriété utilisateur :
java -Duserid=$(id -u) CoolApp
Dans votre CoolApp, vous pouvez simplement récupérer l'ID avec :
System.getProperty("userid");
Cordialement,
Martine.