Übergabe der Paramater mittels printf scheitert

wasserbueffel

Grünschnabel
Guten Tag,

ich bitte um Hilfe, da die Nutzung der neueren Consoleklasse, an der richtigen Übergabe der Argumente oder einer NullPointerException scheitert.

Code:
import java.io.*;

public class Anwendung1 {

	private String name;
	private String gjahr;

public static void main (String [] args){	
	
	Anwendung1 aw = new Anwendung1();
	
	Console cons = System.console();

/* java.lang.NullPointerException
trage ich jedoch statt null nichts ein meldet Eclipse folgendes:
 The Method printf (String, Object[]) in the type console is not aplicable for the arguments (String) */
	
	cons.printf("%n", null); 
	
	cons.printf("Geb deinen Namen ein: ", null);
	aw.name = cons.readLine();
	
	
	
	cons.printf("%n Geb dein Geburtsdatum ein: ", null);
	aw.gjahr = cons.readLine();
	
	cons.printf("%n" + aw.name + "dein Gjahr " + aw.gjahr + "ist ja große klasse %n", null);
	cons.printf("Deine Name: %1$f, ist klasse und dein Gjhar: %2$f auch", aw.name, aw.gjahr);
	
  }
}
 
Also ich denke du hast zwei Probleme:

Einerseits dürfte deine Console null sein, daher kommt die NullPointerException. Wenn du was auf der Konsole ausgeben willst, dann benutz einfach System.out.printf

Weiterhin scheint in deinem Projekt dein Target auf 1.4 zu stehen, ansonsten ist es kein Problem keine Argumente bei printf anzugeben.
 
Wenn du was auf der Konsole ausgeben willst, dann benutz einfach System.out.printf
Aber dann ist die Ausgabe von Umlauten nicht möglich, was ich mit der Console Klasse ja umgehen wollte.

Weiterhin scheint in deinem Projekt dein Target auf 1.4 zu stehen
Wie kann ich den mein Target den auf 1.6 ändern?

Wie kann überhaupt ein anderes Target aus mein installiertes in betracht kommen, wenn ich ausschließlich Java6 installiert habe?
 
Na sofern du nur Java 1.4 Code schreibst kannst du mit Java 1.6 auch für ein Java 1.4 kompilieren indem das Target auf 1.4 gestellt wird.
Im Moment scheint dass bei dir so zu sein, weil er nicht zu erkennen scheint dass es sich um Varargs handelt und man deswegen nichts angeben muß. Umstellen kannst du das mit Rechtsklick auf deinem Projekt - Properties - Java Compiler - Compiler Compliance Level auf 6.0

Unter eclipse wird die Console wohl nicht unterstützt: http://www.eclipsezone.com/eclipse/forums/t93685.rhtml
 
auf deinem Projekt - Properties - Java Compiler - Compiler Compliance Level auf 6.0
Prima das hat geklappt :) danke.
Unter eclipse wird die Console wohl nicht unterstützt
Das ist echt schade, nicht nur für die Umlaute, sondern auch um die wesentlich leichter Eingabemöglichkeit mittels readLine() :(.

Es scheint jedoch allgemein Probleme mit der Klasse Console zu geben. Bis jetzt hab ich auch noch kein HowTo gefunden, vielleicht muss ich dann erstmal auf System.out zurückgreifen, um die bleibende NullPointerException zu umgehen :(
 
Zuletzt bearbeitet:
Zurück