え、そこ参照してるの?と思いますね絶対。
javaでサーバのホスト名を取得し、アラートメールの件名にサーバ名を記述したい時、InetAddressのgetCanonicalHostNameを使う場合がありますね。
このgetCanonicalHostNameですが、一体どこの値を参照しているか実はよく解りませんでした。
public static String getHostName() { InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } return inet.getCanonicalHostName(); }
最初はapacheのServerNameを見ているのか?と思ったが違う。
ではhostname?違う。
ではいったいどこなんだ??と思って色々試してたら解りました。
答えは /etc/hosts でした。
treemacpro:sitemap tree$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain
この場合、getCanonicalHostNameは「localhost」を返します。
treemacpro:sitemap tree$ cat /etc/hosts 127.0.0.1 localhost.localdomain localhost
続いてこの場合は、getCanonicalHostNameは「localhost.localdomain」を返します。
どうやら一番左に記述した値が参照されるようです。
私が試した環境はCentOSです。
macでは/etc/hostsを参照している訳ではなさそう(どこを参照しているか不明)で、
OS毎に違う場所を参照していると思われます。
こういうOS毎に挙動が変わる機能は困りますね。
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 77人 クリック: 936回
- この商品を含むブログ (266件) を見る
- 作者: 川場隆
- 出版社/メーカー: 秀和システム
- 発売日: 2010/03/25
- メディア: 単行本
- 購入: 4人 クリック: 34回
- この商品を含むブログ (9件) を見る
なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
- 作者: 小森裕介,アクロクエストテクノロジー株式会社
- 出版社/メーカー: 技術評論社
- 発売日: 2004/12/01
- メディア: 単行本
- 購入: 10人 クリック: 217回
- この商品を含むブログ (51件) を見る