!!!OSのユーザを取得する System.getProperty("user.name"); で取得できるが、 java -Duser.name=hoge test 等でプロパティを指定することで変更可能。 !!!ログインユーザ、ドメインの取得する com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem(); System.out.println(NTSystem.getName()); System.out.println(NTSystem.getDomain()); でログインしているユーザ名とドメインを取得できる。 AD等にログインしていない場合は、マシン名がドメイン名として取得する。 ただし、NTSystem(Windows等)しか使えないので注意。 UNIXの場合は com.sun.security.auth.module.UnixSystem us = new com.sun.security.auth.module.UnixSystem(); System.out.println(us.getUsername()); 各OSで動作するようにするにはリフレクションを使う。 !!!サンプル {{code Java, import java.lang.reflect.*; public class test { public static void main(String[] args) { System.out.println(invoke("com.sun.security.auth.module.NTSystem", "getName").toString()); System.out.println(invoke("com.sun.security.auth.module.NTSystem", "getDomain").toString()); System.out.println(invoke("com.sun.security.auth.module.UnixSystem", "getUsername").toString()); } public static Object invoke(String className, String methodName) { try { Class c = Class.forName(className); Object instance = c.newInstance(); Method method = c.getMethod(methodName); return method.invoke(instance); } catch (Exception e){ e.printStackTrace(); } return ""; } } }} {{category2 プログラミング言語,Java}}