2016-04-08 30 views
0

Ich versuche, eine Verbindung zu einem Webserver herzustellen und zu überprüfen, ob es von meinem Computer aus erreichbar ist. Das Problem ist, dass wenn ich versuche, InetAddress.getByName (Adresse) ich einen Kompilierungsfehler erhalten zu verwenden:Kann das Symbol nicht finden InetAddress.getByAddress()

Error:(20, 50) java: cannot find symbol 
symbol: class getByName 
location: class java.net.InetAddress 

Es ist komisch, denn wenn ich mit dieser Methode geben Sie den Namen beginnen, IntelliJ IDEA zeigt mir einen Tipp mit dem Namen Vorschlagsliste Es gibt also kein Problem mit der falschen PATH-Variable. Und wenn ich mit dem Namen der Methode fertig bin, malt er sofort rot und sagt "Kann das Symbol nicht nach Namen auflösen". Inzwischen hat InetAddress.isReachible (100) kein solches Problem, auch wenn man bedenkt, dass es in derselben Klasse platziert ist. Tatsächlich bekomme ich das Problem nur mit öffentlichen statischen Methoden, wie InetAddress.getByAddress(), InetAddress.getLoopbackAddress() usw. Ich dachte, dass ich alte Java-Version verwenden könnte, also tippte ich Java-Version in der Windows-Befehlszeile und hier, was es sagt:

java version "1.8.0_73" 
Java(TM) SE Runtime Environment (build 1.8.0_73-b02) 
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode) 

Und dies ist mein Code:

String url = "http://reddit.com"; 
    byte [] address = url.getBytes(); 
    InetAddress inetAddress = new InetAddress.getByName(address); 
    try { 
     inetAddress.isReachable(100); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

der Weg in die Bibliothek könnte im Code-Schreibzeit erreichbar sein, aber nicht zur Laufzeit - können Sie bestätigen, dass alle Abhängigkeiten zur Laufzeit enthalten sind (dh in dem Classpath) - wie geht es dir das Programm laufen lassen? Wie schließst du es in deine IDE ein? – ochi

+0

Danke, aber ich denke wir haben den Grund dafür gefunden. –

Antwort

4

die neue entfernen. Ihr Code soll:

InetAddress inetAddress = InetAddress.getByName(address); 
+0

Oh Gott, so ein dummer Fehler! Ich habe 3 Stunden damit verbracht, herauszufinden, was falsch ist. Vielen Dank! –