Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyelesaikan UnknownHostException di Java?

Bagaimana untuk menyelesaikan UnknownHostException di Java?

王林
王林ke hadapan
2023-04-23 21:01:055136semak imbas

Java.NET.UnknownHostException berlaku apabila resin mesin ujian yang baru diberikan kepada rakan sekerja Punca masalah ialah nama hos telah dikonfigurasikan dalam sistem /etc/Hostname, tetapi tiada konfigurasi yang sepadan dalam /. dll/hos fail. Penyelesaian mudah adalah untuk mengkonfigurasi hubungan yang sepadan, atau bahkan memadam fail /etc/Hostname.

Bagaimana untuk menyelesaikan UnknownHostException di Java?

Sebab yang mendalam: Dalam kebanyakan sistem pengendalian Linux, nama hos ditemui berdasarkan konfigurasi dalam /etc/hosts, tetapi sistem berasaskan Detian menggunakan /etc/ Konfigurasi dalam fail Nama hos digunakan sebagai nama hos.

Dan InetAddress.java Java memanggil String asli awam InetAddressImpl.java getLocalHostName() membuang UnknownHostException untuk mendapatkan nama hos tempatan ini adalah asli dan merupakan pelaksanaan sistem tempatan Apabila terdapat masalah dengan konfigurasi, terdapat masalah dengan kod Java.

nama hos Lihat nama mesin ini,

  • Jika nama mesin ini bukan alamat IP, seperti "sohu", anda mesti mengkonfigurasi sohu yang sepadan dalam /etc/hosts IP tempatan, jika tidak java.net.InetAddress.getLocalHost akan membuang pengecualian java.Net.UnknownHostException

  • Jika nama tempatan ialah alamat IP, ia mestilah. blok mesin tempatan IP kad rangkaian,

  • Situasi ketiga lebih menyusahkan. Jika nama mesin tempatan ialah alamat IP, tetapi bukan IP kad rangkaian tertentu mesin tempatan, atau hanya sebahagian daripada alamat IP, seperti 192.168 (inilah yang saya temui), maka jalankan java .net.InetAddress.getLocalHost( ).getHostAddress() akan mendapat 192.0.0.168, java.net.InetAddress.getLocalHost().getHostAddress() tidak akan membuang pengecualian, tetapi akses yang berkaitan akan terbantut untuk masa yang lama kerana ia adalah mencari alamat 192.0.0.168 Jika rangkaian Jika alamat ini tidak wujud dalam rangkaian, Pengecualian tamat masa Sambungan akhirnya akan dibuang jika alamat ini wujud dalam rangkaian, sambungan yang enggan menjadi tuan rumah akan dibuang, yang mana jelas bukan yang anda mahukan

Kesimpulan:
1. Tetapkan nama tempatan: nama hos mName xxx adalah lebih baik untuk tidak menulis dalam bentuk alamat IP Jika anda menulisnya, ia mestilah bentuk IP lengkap mesin tempatan (jangan tulis separuh sahaja)
2. Dalam / Tambah barisan IP tempatan mName
ke etc/hosts 3. Gunakan InetAddress.getLocalHost() .getHostAddress() untuk menguji sama ada hasilnya konsisten dengan IP tempatan

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan UnknownHostException di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam