Sie können id
ausführen Befehl und Leseergebnis.
zum Beispiel:
$ id -u jigar
Ausgabe:
1000
Sie können den Befehl ausführen mit
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) {
}
Quelle
Dafür gibt es tatsächlich eine API. Es ist nicht erforderlich, einen Shell-Befehl aufzurufen oder JNI zu verwenden, sondern nur
def uid = new com.sun.security.auth.module.UnixSystem().getUid()
Wenn Sie beeinflussen können, wie die Java VM gestartet wird, könnten Sie die uid übergeben als Benutzereigenschaft:
java -Duserid=$(id -u) CoolApp
In deiner CoolApp könntest du die ID einfach abrufen mit:
System.getProperty("userid");
Grüße,
Martin.