package jp.ehobby.info; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.net.InetAddress; import java.net.UnknownHostException; /** * システム情報を表します. * * @author kei-n */ public final class SystemInfo { /** * Java VM を実行しているプロセスIDを返します. * PIDの取得に失敗した場合、-1 を返します. * * @return PID */ public static int getPid() { // jvmName は通常 [PID]@[ホスト名] といった形になるので、PID部分を取得する RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean(); String jvmName = bean.getName(); String pidStr = jvmName.split("@")[0]; //$NON-NLS-1$ int pid; try { pid = Integer.parseInt(pidStr); } catch (@SuppressWarnings("unused") NumberFormatException e) { pid = -1; } return pid; } /** * ローカルホストの名前を返します. * ローカルホストの名前が取得できない場合、"localhost" を返します. * * @return ローカルホストの名前 */ public static String getLocalHostName() { try { InetAddress localAddr = InetAddress.getLocalHost(); return localAddr.getHostName(); } catch (@SuppressWarnings("unused") UnknownHostException e) { return "localhost"; //$NON-NLS-1$ } } }