ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
3141
3141
EMPFEHLEN
-
18.03.04 13:18 #1
- 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.
-
18.03.04 23:51 #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
-
19.03.04 20:28 #3
- 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
-
20.03.04 01:02 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Danke *rot werd*
Gruß Tom
-
Danke Thomas, hast mir ebenso gerade weitere Recherchen erspart
Someday, somehow gonna make it alright but not right now.. :P
-
25.03.10 16:27 #6AnonymerMensch 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
-
Netzwerkeinstellungen via shell script für Java Programm
Von violentsports im Forum Linux & UnixAntworten: 3Letzter Beitrag: 18.01.10, 11:05 -
SWT: Shell Probleme
Von kangaroody im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 16.03.07, 13:49 -
Shell Skript mit Java starten
Von desaster0505 im Forum JavaAntworten: 2Letzter Beitrag: 09.03.07, 14:23 -
Probleme mit Shell
Von webmaster76 im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 22.07.05, 14:41 -
Java-Programm ohne Shell
Von warlike im Forum JavaAntworten: 5Letzter Beitrag: 15.06.05, 18:51





Zitieren

Login





