中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java.Net.UnknownHostException異常處理問題怎么解決

發布時間:2023-03-31 15:26:59 來源:億速云 閱讀:162 作者:iii 欄目:開發技術

這篇文章主要介紹了java.Net.UnknownHostException異常處理問題怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇java.Net.UnknownHostException異常處理問題怎么解決文章都會有所收獲,下面我們一起來看看吧。

同事新分的測試機resin啟動的時候出現了Java.NET.UnknownHostException異常,問題原因是在系統的 /etc/Hostname中配置了主機名,而在/etc/hosts文件中沒有相應的配置。簡單的解決辦法是對應關系配好就可以,甚至除/etc/Hostname這個文件也可以。

java.Net.UnknownHostException異常處理問題怎么解決

深層的原因: 在大多數Linux操作系統中,都是以/etc/hosts中的配置查找主機名的,但是 Detian based system用/etc/Hostname文件中的配置做主機名。

而Java 的InetAddress.java 調用 InetAddressImpl.java 的   public native String getLocalHostName() throws UnknownHostException; 來獲取本地主機名, Java 的這個方法是native的,是本地系統的一個實現,所以在本地配置出現問題的情況下,Java 代碼出現問題。

hostname 查看本機名稱,

  • 若本機名稱不是一個IP地址, 比如是"sohu",則必須在/etc/hosts中配置 sohu對應本機IP,否則java.net.InetAddress.getLocalHost會拋出java.Net.UnknownHostException異常.

  • 若本機名稱是一個IP地址,而且必須是本機某塊網卡的IP, 

  • 第三種情況比較麻煩。倘若本機名稱是一個IP地址,但不是本機某塊網卡的IP,或者只是某個IP地址的一部分,比如192.168(這是我遇到過的),那么執行java.net.InetAddress.getLocalHost().getHostAddress()會得到192.0.0.168,java.net.InetAddress.getLocalHost().getHostAddress()不會拋出異常,但相關訪問會停滯很久,原因是他在查找192.0.0.168這個地址, 若網絡中不存在這個地址,最終會拋出Connection timed out異常;若網絡中存在這個地址,Connection refused to host這個異常將被拋出,這些顯然都不是想要的

結論:
    1. 設置本機名稱:hostname mName     xxx最好不是寫IP地址的形式,若寫則必須是本機的完全IP形式(不要只寫一半)
    2. 在/etc/hosts里加一行 本機IP mName
    3. 用InetAddress.getLocalHost().getHostAddress()測試一下結果是否是與本機IP一致

關于“java.Net.UnknownHostException異常處理問題怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“java.Net.UnknownHostException異常處理問題怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚东县| 昌宁县| 福鼎市| 颍上县| 正阳县| 衡东县| 武夷山市| 黄梅县| 汶上县| 呼和浩特市| 克拉玛依市| 阿鲁科尔沁旗| 金寨县| 武川县| 隆化县| 贵南县| 东安县| 翼城县| 长垣县| 盖州市| 武穴市| 山丹县| 龙口市| 壤塘县| 万载县| 郧西县| 璧山县| 永登县| 常山县| 冷水江市| 武威市| 西乡县| 朝阳区| 交口县| 磴口县| 农安县| 阿鲁科尔沁旗| 东方市| 长垣县| 密山市| 于田县|