16

javaを使用してLinuxマシンでユーザーのUIDを取得する方法はありますか? メソッドは認識してSystem.getProperty("user.name");いますが、ユーザー名が返され、UID を探しています。

4

5 に答える 5

13

コマンドを実行idして結果を読み取ることができます。

例えば:

$ id -u jigar

出力:

1000

コマンドを実行できます

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) {
}

ソース

于 2011-01-25T16:38:12.863 に答える
6

Java VM の起動方法に影響を与えることができる場合は、uidをユーザー プロパティとして渡すことができます。

java -Duserid=$(id -u) CoolApp

CoolApp では、次のように ID を簡単に取得できます。

System.getProperty("userid");

よろしく、

マーティン。

于 2011-01-25T17:00:14.367 に答える
1

ファイルを開い/etc/passwdて、ユーザーが と等しい行を検索するだけSystem.getProperty("user.name")です。

于 2011-01-25T17:03:32.103 に答える
1

もう 1 つの選択肢は、JNI を使用して getuid() を呼び出すことです。

于 2011-01-25T17:42:14.890 に答える