tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
3141
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    OberPinsel OberPinsel ist offline Grünschnabel
    Registriert seit
    Mar 2004
    Ort
    Luzern, Schweiz
    Beiträge
    2
    Salü All

    Ich kämpfe seit einiger Zeit mit ein paar Zeilen Code und komme einfach nicht weiter! ich hoffe, es gibt da draussen jemand, der mir helfen kann! Zum Problem:

    Ich muss aus einem Office-Dokument die Eigenschaften auslesen können (Author, Vorlage, Titel, zuletzt geänder von....). Zuerst dachte ich, ich müsse alles über 'ne COM-Brücke laufen lassen doch dann fand ich ein netten kleines Progrämmchen, welches mir die Attribute in der Konsole ausgibt. Das Programm braucht als Parameter den Namen des Dokuments. So weit so gut. In der Konsole lauft es perfekt. Ich konnte die Ausgabe in einen Textfile umleiten, genau das was ich brauche. Also dachte ich, ich starte es mal aus Java aus mit dem exec()-Command. Doch es schlug fehl, da ich die Befehle in einen einzigen String gespeichert habe, und offenbar ist es so, dass exec den String in einzelne Strings zerlegt und nacheinander ausführt, was in diesem Fall nicht klappen kann. Danach fand ich im Internet einige Tipps und Tricks zu dem Thema. Alles deutete darauf hin, dass ich mein String-Befehl in einem String Array speichern muss und danach sollte es funktionieren. Doch leider sehe ich immer noch rot (Error-Meldung in Eclipse: I/O Exception: Creating Process: blablablablabla: Error=123 oder manchmal error=2). Genau gesagt, wenn ich mein Array aus nur zwei Strings bilde, dann sehe ich die Ausgabe in der Eclipse-Konzole. Wenn ich jedoch einen dritten String hinzufüge ("> c://textfile.txt") tauchen die oben erwähnten Fehlermeldungen aus. Ich habe noch versucht, den Compiler von 1.4 auf 1.3 zu ändern, aber nix half.

    Hat jemand schon das gleiche Problem gehabt? Weiss jemand, wie ich die Ausgabe sonst noch in einen Textfile umleiten könnte?

    Vielen Dank im Voraus für eure Hilfe und Gruss.
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Dein Problem ist, das das Umlenkungszeichen ">" eigentlich ein spezielles Zeichen für die Shell ist (Veranlasst eben das Umleiten eines Datenstromes),
    jedoch kann die Shell dieses Zeichen in dieser Aufrufart nicht interpretieren, deshalb kommts zu deinem Fehler ...
    Warum leitest du die Ausgabe des Konsolen Programms nicht auch noch mit Java in eine date um?

    Beispiel ...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    /*
     * Created on 18.03.2004
     *
     * To change the template for this generated file go to
     * Window>Preferences>Java>Code Generation>Code and Comments
     */
     
    /**
     * @author Administrator
     *
     * To change the template for this generated type comment go to
     * Window>Preferences>Java>Code Generation>Code and Comments
     */
    public class OutputDeflector {
     
        public static void main(String[] args) {
            new OutputDeflector().doIt();
        }
     
        /**
         * 
         */
        private void doIt() {
            // TODO Auto-generated method stub
     
            Runtime r = Runtime.getRuntime();
            Process p = null;
            BufferedReader br = null;
            FileWriter fw = null;
            BufferedWriter bw = null;
            try {
                p = r.exec("cmd /c ipconfig");
                p.getOutputStream().close();
                br = new BufferedReader(new InputStreamReader(p.getInputStream()));
     
                String line = null;
                fw = new FileWriter("c:/output.txt");
     
                bw = new BufferedWriter(fw);
     
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                    bw.write(line+"\r\n");
     
                }
                bw.flush();
                fw.flush();
                bw.close();
                fw.close();
                br.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    Gruß Tom
     

  3. #3
    OberPinsel OberPinsel ist offline Grünschnabel
    Registriert seit
    Mar 2004
    Ort
    Luzern, Schweiz
    Beiträge
    2
    Hallo Thomas,

    Genau das, was ich gesucht habe! Du weisst gar nicht, wie sehr du mir damit geholfen hast. DANKE VIEEEEEELMALS!

    So einfach, und dabei habe ich die halbe Welt schon gefragt, und keine Sau wusste es. Nicht mal die Professoren, welche schon Jahrelang Java und C++ unterrichten. Du bist unbestritten der OberGuru

    Gruss,
    Ahmet
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Danke *rot werd*

    Gruß Tom
     

  5. #5
    Registriert seit
    Apr 2001
    Ort
    Saint City
    Beiträge
    286
    Danke Thomas, hast mir ebenso gerade weitere Recherchen erspart
     
    Someday, somehow gonna make it alright but not right now.. :P

  6. #6
    AnonymerMensch Tutorials.de Gastzugang
    Auch von mir vielen Dank!

    Endlich weiß ich, wie ich Konsolen-Befehle in Java mache.

    Ich arbeite gerade an einem Projekt, was aus mehreren Prozessen besteht. Die sind noch recht lose verbunden und müssen einzeln gestartet werden. Jetzt kann ich eine zentrales Programm schreiben, was alles handhabt und das manuelle Konsolen-gehacke vermeidet.
     

Ähnliche Themen

  1. Netzwerkeinstellungen via shell script für Java Programm
    Von violentsports im Forum Linux & Unix
    Antworten: 3
    Letzter Beitrag: 18.01.10, 11:05
  2. SWT: Shell Probleme
    Von kangaroody im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 16.03.07, 13:49
  3. Shell Skript mit Java starten
    Von desaster0505 im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.03.07, 14:23
  4. Probleme mit Shell
    Von webmaster76 im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 22.07.05, 14:41
  5. Java-Programm ohne Shell
    Von warlike im Forum Java
    Antworten: 5
    Letzter Beitrag: 15.06.05, 18:51