Ähm...du meinst in der Windows-Konsole oder?
Ich sags mal so:
Ein richtiges Programm für den End-User sollte keine Konsolenausgaben haben, weil man da ja dann eine grafische Oberfläche hat. Stell dir mal vor, du bist ein User, der keine Ahnung von IT hat und gerade mal ein bisschen im Internet surft und seine E-Mails abruft und dann öffnet sich da bei einem Programmstart plötzlich so ein (und ich sag jetzt bewusst) "böses" und "unheimliches" schwarzes Fenster...die meisten wissen nicht nur nichts damit anzufangen, sondern würden sogar Angst bekommen, dass sie sich geradewegs einen Virus eingefangen haben.
Aus eigener Erfahrung: Ich musste mal bei Bekannten schauen, warum der Netzwerkdrucker plötzlich nicht mehr funktioniert und hab halt als erstes einen einfachen ping auf der Konsole ausgeführt. Routinemäßig "Windowstaste" + "R" gedrückt, "cmd" eingegeben "Enter" und als sich die Konsole öffnet, hör ich wie hinter mir jemand schreit "oh mein gott schau mal was der alles kann!"...obwohl das wohl eine der leichtesten Aufgaben eines ITlers ist
Darum verwendet man die Konsole auch hauptsächlich nur in der Entwicklung z.B. fürs Debugging (Ausgabe von Variablen etc. etc.). Und weil das ja dann für den Entwickler und damit quasi für DICH bestimmt ist, kannst du das auch auf englisch machen, wirst darum nie Probleme mit den deutschen Sonderlauten haben und alle sind glücklich.
Falls du aber dennoch lieber - aus welchem Grund auch immer - deutschsprachige Konsolenausgaben willst, dann darfst du das halt nicht mit der Standardausgabe "System.out.println();" machen, sondern musst dir einen eigenen PrintWriter programmieren, der dir die Ausgaben macht.
Zur Vollständigkeit halber hast du hier ein Codebeispiel, wie das Aussehen kann:
Java:
/* Um deutsche Sonderzeichen ausgeben zu können, müssen Sie ein
* PrintWriter-Objekt erzeugen, das die Zeichentabelle verwendet, die
* vom System für Konsolenfenster eingesetzt wird. Unter Windows ist das
* üblicherweise aus Kompatibilitätsgründen zu DOS-Anwendungen die
* Tabelle 850. Java verlangt für die Erzeugung dieses Objekts, dass Sie
* die Ausnahme UnsupportedEncodingException abfangen, was im Beispiel
* über einen try-catch-block programmiert ist */
PrintWriter out = null;
String codepage = "Cp850";
try
{
out = new PrintWriter(new OutputStreamWriter(System.out, codepage));
/* Mit diesem Objekt können Sie nun Daten an der Konsole ausgeben */
out.println("Test mit deutschen Spezialzeichen: äöü ÄÖÜ ß");
/* Da Sie nun einen Stream verwenden, müssen Sie den Inhalt des
* Stream über flush ausgeben. Ansonsten erscheint nichts auf
* der Konsole */
out.flush();
}
catch (UnsupportedEncodingException e)
{
/* Fehlerauswertung */
System.out.println("Erzeugung des Stream fuer die Zeichentabelle " +
codepage + " nicht möglich: " + e.getMessage());
}
In Eclipse sind die Ausgaben dann zwar kryptisch und falsch, aber auf der Windowskonsole läuft alles wunderbar.
Edit: Quelle für den Code übrigens: http://juergen-bayer.net/buecher/programmierenlernen/artikel/Konsole-IO/Konsole-IO.aspx
Aber nochmals: Produktiv würde ich das nie machen...
Gruß
Daniel