Socket Externe IP holen und in Textfeld setzen

Rudolf

Bekanntes Mitglied
Hi,

ich habe leider feststellen müssen, dass Java keine Operation anbietet, mit der man die externe Ip des lokalen Hosts herausfindet und diese weiterverwendet. Daher habe ich ein PHP-Script gebastelt, dass die Ip ausgibt. Diese wird von meinem Java Programm ausgelesen und in ein Textfeld gesetzt.

Scheinbar dauert das Holen der IP solange, dass der Thread weiterarbeitet. Ich habe folgende Codezeile:

Java:
	public String getIp() {
		if (this.ip == null) {
			try {
				this.ip = this.model.getRemoteIp();
			} catch (final IOException e) {
			}
		}
		return this.ip;
	}

Beim Versuch die Zeile 4 auszuführen, bricht die Anwendung mit

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

ab. Komisch ist nur, dass JTextField mit Null Referenz arbeiten kann. Wenn man einen String mit der Referenz null in ein JTextField reinsetzt, wird der Text "null" reingesetzt. Daher verstehe ich diese Fehlermeldung nicht.

Was ist die Ursache und was ist die Lösung für das Problem?
 

Nardian

Bekanntes Mitglied
Hi,

wäre wohl am Besten, wenn du eine IDE verwendest, und den Code einfach debugst?
Nullpoiner könnte zb auch das model-Objekt erzeugen? oder irgend etwas anderes in deiner getRemoteIp() Funktion.

Wenn du eh die Exception hast, sieh dir einfach mal den Stacktrace davon an, der sollte dir verraten in welcher Zeile / Datei die Exception verursacht wird.

Lg
 

r.w.

Bekanntes Mitglied
Java:
	public String getIp() {
		if (this.ip == null) {
			try {
				this.ip = this.model.getRemoteIp();
			} catch (final IOException e) {
			}
		}
		return this.ip;
	}

Beim Versuch die Zeile 4 auszuführen, bricht die Anwendung mit

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

ab. Komisch ist nur, dass JTextField mit Null Referenz arbeiten kann. Wenn man einen String mit der Referenz null in ein JTextField reinsetzt, wird der Text "null" reingesetzt. Daher verstehe ich diese Fehlermeldung nicht.

Was ist die Ursache und was ist die Lösung für das Problem?

Hi!

Eine NullPointerException in Zeile 4 würdest Du z.B. bekommen, wenn an der Stelle this.model == null wäre.

VG ROlf
 

Rudolf

Bekanntes Mitglied
Echt doof,

ich hatte

Java:
public class Test {
	Model model;
	Proxy proxy=new Proxy(model);

	/**
	 * 
	 */
	public Test(final Model model) {
		this.model = model;
	}
}

Die Klasse proxy wird vor der Zuweisung von model erstellt und hat damit eine Null-Referenz. Also immer darauf achten!
 

Ähnliche Java Themen


Oben