[Java] System.err vor System.out?

E

Ehemaliger Benutzer 8887

Gast
Servus,

ich hab mal eine kleine Frage an euch.
Ich möchte schon mal vorab ein wenig Java lernen (lerne ich im nächsten Jahr in der Ausbildung), um einen Einblick in die OO-Programmierung zu bekommen.
Als Tutorial habe ich "Java ist auch eine Insel" in der 10. Ausgabe.

Nun zu meiner Frage:
Warum wird System.err.println() vor System.out.println() ausgeführt? Wobei die Reihenfolge zuerst system.out.println() und dann system.err.println() ist.

Hier der Quelltext:
Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package insel;

/**
 *
 * @author Mythos
 */
public class Insel {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        java.lang.String Test = "Hallo Welt";
        System.out.println("Jedes Programm beginnt mit " + Test);
        System.err.println("Fehler!");
    }
}

Grüße,
Mythos
 
Java.lang.* wird mWn immer automatisch importiert. es reicht also

String Test = "Hallo Welt";

zu schreiben, "Test" übrigens klein.
Ansonsten kann ich dir leider nicht helfen. Schön zu wissen wäre noch womit du genau arbeitest (d.h. BlueJ, JavaEditor, Notepad und kompilieren über Konsole, Java-Version, JDK ode IDE etc.) Um ehrlich zu sein: Vorher lernen lohnt sich kaum, ich spreche aus Erfahrung.
 
zu schreiben, "Test" übrigens klein.

Da wäre es nett zu sagen warum man es denn klein schreiben sollte, hier z.B. ist es nicht die gängige Java Notation. ;)

Schön zu wissen wäre noch womit du genau arbeitest (d.h. BlueJ, JavaEditor, Notepad und kompilieren über Konsole, Java-Version, JDK ode IDE etc.)

Dem Quellcode nach, kann man davon ausgehen das es die IDE NetBeans ist. ;)

Vorher lernen lohnt sich kaum, ich spreche aus Erfahrung.

Komische Erfahrung.

MfG Master of Words
 
Wenn ich mich noch genau entsinne ist das so, weil System.out noch geflusht werden muss und System.err nicht

Grüße
 
Wenn ich mich noch genau entsinne ist das so, weil System.out noch geflusht werden muss und System.err nicht

Grüße

Wirklich? Wieso wird nicht auch err geflusht, beides sind doch Datenstreams. :huh:

Ich habe es auch mal probiert und hatte als Ergebnis etwas Unterschiedliches. Mal kam die err-Meldung zuerst und mal kam die out-Meldung zuerst, eine gewisse Regelmäßigkeit konnte ich also so schnell nicht finden. Daher habe ich mich auf das Handling mit den Threads besinnt, weil es eben verschiedene Streams sind, werden diese sicher auch in verschiedenen Threads laufen, die unterschiedlich bearbeitet werden.

MfG Master of Worlds
 
Sry ist schon ne weile her aber hier vllt. hilft das weiter http://www.devx.com/tips/Tip/14698
Manche meinen es kommt auch auf die Konsoleneinstellung an.
Ob bei so einem kleinen Prog. ein extra Thread wegen Sys.err und Sys.out bezweifle ich bei ner GUI z.B. MouseListener ja oder wenn du selber einer startest.
Aber korrigiert mich falls ich falsch liege :D

Grüße