Java+Eclipse: wie prüfst du ein java-Programm, dass der Empfang Pipe/stdin umgeleitet?

Ich bin mit Eclipse zum entwickeln von Java-Programmen, und dachte, ich würde eine option hinzufügen, um mein Programm zum analysieren von stdin, wenn keine Argumente. (sonst ist es eine Datei analysiert)

Ich habe Probleme, wenn ich ausführen "somecommand | java -jar myjar.jar" auf und ging zu Debuggen... dann realisierte ich weiß nicht, wie zu Beginn eines Prozesses in Eclipse so. Und wenn ich es über die Eingabeaufforderung kann ich nicht anfügen an einen Laufenden Prozess, da der Prozess startet sofort.

Irgendwelche Vorschläge, wie zu Debuggen?

Bearbeiten: siehe, die Sache ist die, ich schrieb mein Programm ursprünglich zu nehmen, ein filename-argument. Dann dachte ich, es wäre nützlich für Sie zu treffen stdin als gut, so dass ich hat abstract InputStream aus meinem Programm (wie Herr Warteschlange schon sagt). Es funktioniert einwandfrei Betriebssystem auf eine Datei (java -jar myjar.jar myfile), aber nicht in Betrieb, wenn ich type myfile | java -jar myjar.jar. Ich vermute, dass es etwas anderes in den zwei Szenarien (eof-Erkennung ist anders?) aber ich möchte wirklich zu Debuggen.

//overall program structure follows:

public static void doit(InputStream is)
{
    ...
}

public static void main(String[] args)
{
    if (args.length > 0)
    {
        //this leaves out the try-catch-finally block,
        //but you get the idea. 
        FileInputStream fis = new FileInputStream(args[0]);
        doit(fis);
        fis.close();
    }
    else
    {
        doit(System.in);
    }
}
  • Würde setzen die Argumente in Ihrer Eclipse-Konfiguration auszuführen, die den trick tun?
  • Dies sind keine Argumente. Es ist die Tatsache, dass ich zu Rohr in somecommand.
InformationsquelleAutor Jason S | 2009-10-16
Schreibe einen Kommentar