Heim  >  Artikel  >  Java  >  Wie löse ich UnknownHostException in Java?

Wie löse ich UnknownHostException in Java?

王林
王林nach vorne
2023-04-23 21:01:055134Durchsuche

Eine Java.NET.UnknownHostException trat auf, als das neu zugewiesene Testmaschinenresin eines Kollegen gestartet wurde. Die Ursache des Problems war, dass der Hostname in /etc/Hostname des Systems konfiguriert war, aber keine entsprechende Konfiguration in /etc/hosts vorhanden war Datei. Die einfache Lösung besteht darin, die entsprechende Beziehung zu konfigurieren oder sogar die Datei /etc/Hostname zu löschen.

Wie löse ich UnknownHostException in Java?

Tiefgründiger Grund: In den meisten Linux-Betriebssystemen wird der Hostname basierend auf der Konfiguration in /etc/hosts gefunden, aber Detian-basierte Systeme verwenden die Konfiguration in der Datei /etc/Hostname als Hostnamen.

Und Javas InetAddress.java ruft den öffentlichen nativen String getLocalHostName() auf. Diese Methode von Java ist nativ und eine Implementierung des lokalen Systems, daher gibt es Probleme mit der lokalen Konfiguration In einigen Fällen liegt ein Problem mit dem Java-Code vor.

Hostname Zeigt den Namen dieser Maschine an.

  • Wenn der Name dieser Maschine keine IP-Adresse ist, z. B. „sohu“, müssen Sie sohu in /etc/hosts so konfigurieren, dass es der lokalen IP entspricht, andernfalls Java .net.InetAddress.getLocalHost Eine java.Net.UnknownHostException wird ausgelöst

  • Wenn der Name dieser Maschine eine IP-Adresse ist und es sich um die IP einer bestimmten Netzwerkkarte auf dieser Maschine handeln muss,

  • Die dritte Situation ist problematischer. Wenn der Name des lokalen Computers eine IP-Adresse, aber nicht die IP einer bestimmten Netzwerkkarte des lokalen Computers ist oder nur ein Teil einer IP-Adresse ist, z. B. 192.168 (das ist mir aufgefallen), führen Sie Java aus .net.InetAddress.getLocalHost( ).getHostAddress() wird 192.0.0.168 erhalten, java.net.InetAddress.getLocalHost().getHostAddress() wird keine Ausnahme auslösen, aber der zugehörige Zugriff wird für eine lange Zeit stagnieren, weil dies der Fall ist Suchen Sie nach der Adresse 192.0.0.168. Wenn diese Adresse im Netzwerk nicht vorhanden ist, wird möglicherweise eine Ausnahme wegen Zeitüberschreitung der Verbindung ausgelöst. Wenn diese Adresse im Netzwerk vorhanden ist, wird die Ausnahme „Verbindung zum Host verweigert“ ausgelöst ist offensichtlich nicht das, was Sie wollen. schreiben Sie nicht nur die Hälfte)

    2. Fügen Sie eine Zeile mit lokalem IP-mName zu /etc/hosts hinzu
  • 3. Verwenden Sie InetAddress.getLocalHost().getHostAddress(), um zu testen, ob das Ergebnis mit der lokalen IP übereinstimmt

Das obige ist der detaillierte Inhalt vonWie löse ich UnknownHostException in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen