可能な解決策はそうのようなRuntime.getRuntime().exec()
を使用することができます
public static void main(String[] args) throws Exception {
Process p;
StringBuilder sb = new StringBuilder();
p = Runtime.getRuntime().exec("quser");
p.waitFor();
BufferedReader reader
= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println(sb);
}
OSは、あなたが
System.getProperty("os.name")
を使用することができます使用されているかを決定するために
run:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
robotlos console 1 Active 1+18:08 3/17/2016 10:36 AM
BUILD SUCCESSFUL (total time: 0 seconds)
:
が正常に自分のログイン情報を取得することができました は、それはあなたが何か行うことができsb
の最後の3つの部分文字列なので、私の場合は、日付と時刻を単離するために:それはきれいな解決策ではないのですが、
String[] vals = sb.toString().split(" ");
String loginTime = vals[vals.length - 3] + " " + vals[vals.length - 2] + " " + vals[vals.length - 1];
をそして
System.out.println(loginTime);
3/17/2016 10:36 AM
シェルで 'quser'を実行するコードスニペットを作成できませんか? [このリンク](http://www.mkyong.com/java/how-to-execute-shell-command-from-java/)には、javaからシェルコマンドを実行する方法の例が示されています。 – robotlos
私が知っている限り、ログイン時間を取得できるjava Systemプロパティはありません。現在ログインしているユーザーを取得できるものはありますが、それより具体的なものはありません。 @robotlosが提案したものを試すことができます。後であなたのプログラムで使う価値をどのように引き出すのか分かりませんが、他の人がそうするかもしれません。 – NAMS