[解決済み] InetAddress.getLocalHost() throws UnknownHostException
質問
私は、(Java で書かれた)私たちのサーバー アプリケーションをさまざまなオペレーティング システムでテストしています。そして、OpenSolaris (2008.11) が、素晴らしい Java 統合により、最も面倒が少ないと思っていました。結局、UnknownHostException が発生するので、私は間違っていたことが判明しました。
try {
computerName = InetAddress.getLocalHost().getHostName();
if (computerName.indexOf(".") > -1)
computerName = computerName.substring(0,
computerName.indexOf(".")).toUpperCase();
} catch (UnknownHostException e) {
e.printStackTrace();
}
と出力されます。
java.net.UnknownHostException: desvearth01: desvearth01
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
しかし
nslookup desvearth01
は正しい IP アドレスを返し
nslookup localhost
は
127.0.0.1
を期待通りに返します。また、同じコードはFreeBSDでは完全に動作します。私が知らないOpenSolarisに何か特別なものがあるのでしょうか?
どんなヒントでも結構です、ありがとうございます。
どのように解決するのですか?
伝統的に、私はもう一度自分自身の質問に答えることができます。
それは、どうやら
InetAddress.getLocalHost()
は無視されるようです。
/etc/resolv.conf
を無視し
/etc/hosts
ファイル (ここで私は
localhost
). このファイルに IP とホスト名を追加することで問題が解決し、例外は解消されました。
別の回答がほぼ正しく、上記からヒントを得て、私の問題は解決されました...ありがとうございました。
しかし、これを改善するために、私はステップバイステップの変更を追加し、素朴なユーザーにも役立つようにします。
ステップ
-
開く
/etc/hosts
を開くと、以下のようなエントリが表示されます。127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
この上にもう一行、任意のエディタによって以下のように追加する必要があります。
vi
またはgedit
(例)<your-machine-ip> <your-machine-name> localhost
).192.168.1.73 my_foo localhost
さて、全体のファイルはこんな感じでしょうか。
192.168.1.73 my_foo localhost
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 保存して、もう一度Javaのコードを実行するだけです...あなたの仕事は終わりました。
関連
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
シェルコマンドやスクリプトのJavaコール
-
Junitのユニットテストはjava.lang.Testを報告します。
-
アノテーション「@Retention」の役割
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
Java の double データ型における 0.0 と -0.0 の問題
-
[解決済み] HibernateがMultipleBagFetchExceptionをスローする - 複数のバッグを同時にフェッチできない
-
[解決済み] voidメソッドが例外を投げるかどうかをMockitoがテストする
-
[解決済み】Java 8 Lambda関数が例外を投げる?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
FindBugの使用概要
-
Javaがテキストファイルを読み込む
-
Java基礎編 - オブジェクト指向
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
アクセス制限の解決方法: ---- in Java
-
htmlとwordの相互変換の実装(画像あり)