Java Java.lang.NullPointerException - warum?

MeandXP

Ensign
Registriert
Juli 2009
Beiträge
171
Moin zusammen,

nach dem ich folgenden quellcode
Code:
import java.io.*;

public class CWriteData_2 {

	public static void main(String[] args) {
		Console cons = System.console();
		cons.printf("Welcome!\nPlease enter the text you want to add to the file!\n");
		
		StringBuilder text_add = new StringBuilder(cons.readLine());
		
		cons.printf("Sie haben %s eingegeben!", text_add);

	}

}
quasi 1:1 aus einem Buch übernommen habe gibt der compiler mir beim Startversuch immer folgendes aus:
Code:
Exception in thread "main" java.lang.NullPointerException
	at CWriteData_2.main(CWriteData_2.java:7)

Muss irgendwie mit dem Console und cons zusammenhängen, aber die Zuweisungen sind doch alle korrekt, oder nicht?

hoffe ihr könnt mir helfen,
MeandXP.
 
hast du schon mal breakpoints gesetzt und debugged, dann solltest auch sehr schnell selber den fehler finden.

Kannst du den Stringbuilder so auslesen? (bin .net entwickler, java nur wegen dem studium ;) )

es gibt eine toString() methode, vrewende die mal
 
Java-Console nicht gestartet?

Systemsteuerung -> Java -> Erweitert -> Java-Konsole -> Konsole nicht starten aktiv?

Zur eigentlichen Codierung:
Laut javadoc kann System.console() null liefern, also müsstest Du das auch erst mal abprüfen und nur dann Methoden auf der Console aufrufen, wenn Du auch eine erhalten hast.
 
Console wird gestartet aber ausgeblendet.
Dem Stringbuilder habe ich die Werte mit .append hinzugefügt, war n anwendungsfehler.
@Toecutter: wie meinst du das mit der prüfen?
 
Zuletzt bearbeitet:
MeandXP schrieb:
Dem Stringbuilder habe ich die Werte mit .append hinzugefügt, war n anwendungsfehler.
das ist nicht der Fehler, es geht auch den wert dem Konstructor zu uebergeben, jedoch das lesen der Werte aus den StingBuilder ist bei dir nicht richtig impleemntiert

MeandXP schrieb:
@Toecutter: wie meinst du das mit der prüfen?
Bist schon draufgekommen was er meint, habe eben deinen code gedebugged, und die variable 'cons' ist NULL, daher die Exception...
 
Und wie behebe ich das Problem mit cons jetzt? Wie gesagt, im Buch wurde darüber nichts geschrieben!
 
erstmal schauen das du den fehler abfaengst (ist ein einfaches if statement)
dafuer auch mal google nutzen ;) (hier findest du immer beispiele)

Dann schauen wie du die console aktivierst (findest du vermutlich in einem Vorhergehenden kapitel, hast du den richtigen projekttyp erstellt?)

Oder Du verwendest einfach einen BufferedReader

EDIT: und machst einfach ein System.out.println("Text der rausgeschrieben werden soll.");
 
Zuletzt bearbeitet:
Ok soweit bin ich dann wohl noch nicht. Ich blick grad garnix mehr also hör ich auf.
Im vorherigen Kapitel war nix.
 
versuch erstmal den klassiker zu erstellen .

Gib einfach "Hello world" aus ;)
 
Hey, super idee!!

Ich denke wenn quellcode ohne kommentar in einem Lehrbuch steht sollte er auch entsprechen zu benutzen sein.
 
ja, allerdings kann es sein das sowas nur im Unterricht durchgenommen wird , was ich acuh seltsam faende
 
laut offiziellem Java Tutorial immer so:
Code:
        Console c = System.console();
        if (c == null) {
            System.err.println("No console.");
            System.exit(1);
        }

man kann sich nicht drauf verlassen daß eine Console existiert, ist betriebsystemabhängig etc.

Whether a virtual machine has a console is dependent upon the underlying platform and also upon the manner in which the virtual machine is invoked. If the virtual machine is started from an interactive command line without redirecting the standard input and output streams then its console will exist and will typically be connected to the keyboard and display from which the virtual machine was launched. If the virtual machine is started automatically, for example by a background job scheduler, then it will typically not have a console.
 
Zuletzt bearbeitet:
Zurück
Oben