2014年7月4日金曜日

[Java] アプリケーションの実行環境(ホスト名, IPなど)を取得する

java.net.InetAddressクラスを利用することでアプリケーションの実行されているマシン名を取得できる。
import java.net.InetAddress;

// ホスト名取得はこれだけ
System.out.println(InetAddress.getLocalHost().getHostName());
他にもIPアドレスを取得したりできる。

Webアプリケーションだと、AP起動時にホスト名から実行されている環境を判定してメモリに保持しておくなどの使い道がありそう。 ソースで環境毎の分岐を記述することで、環境依存ファイルを少し減らせる…かも。
例えば、起動時に以下のようなクラスをロードしておく。Singletonだと良さそう。
import java.net.InetAddress;
import java.net.UnknownHostException;

public class RuntimeEnvironment {

 private static RuntimeEnvironment instance = new RuntimeEnvironment();
 private RuntimeEnvironment() {}

 private static String hostName;
 private static InetAddress inetAddress;

 public static void init() {
  try {
   inetAddress = InetAddress.getLocalHost();
  } catch (UnknownHostException e) {}
  hostName = inetAddress.getHostName();

 }

 public static String getHostName()             {return hostName;}
 public static InetAddress getInetAddress() {return inetAddress;}

        // 以下、用意する環境を表す列挙型を定義するなど…

}




【環境】

 Java SE7

0 件のコメント:

コメントを投稿