Verschiedene Dateien in Java starten

Hallo,

wer weiss, wie ich in Java unterschiedliche Dateien starten kann?

Mit Hilfe des Befehles:
Runtime.getRuntime().exec(„filename“);

kann ich einen Prozess starten.
Wie kann ich die Registry auslesen, um das entsprechende Programm (z.B. Word) mit der Datei zu starten?

Vielen Dank und

MFG

Jörg

Wie kann ich die Registry auslesen, um das entsprechende
Programm (z.B. Word) mit der Datei zu starten?

Da die Registry ein Windows-Spezifikum ist kannst du über die Standard-Java-Klassen nicht darauf zugreifen, allerdings bietet MS mit ihrem eigenen Java-API Funktionen (Klasse com.ms.wfc.app.Registry).

Allerdings kannst du das was du suchst einfacher haben, du kannst unter Windows Dateien direkt von der Kommandozeile (bzw. über die entsprechende Java-Methode) starten und er ruft das verknüpfte Programm auf, einfach „start dateiname.ext“ auf, oder auch nur „dateiname.ext“, weiß aber nicht ob letzteres auch bei älteren Windows-Versionen funkt, aber mit start gehts sicher.

Grüße, Robert

OK, aber…
Hallo Robert,

vielen Dank für Deine Anwort.

Es stimmt, daß ich mit der Methode: Runtime.getRuntime().exec(dateiname.extension)
ein externes Programm starten kann.
Soweit so gut.

Aber, meiner Meinung nach lassen sich allerdings nur .exe und .bat Dateien starten.
Möchte ich z.B. eine .doc-Datei öffnen mit
Runtime.getRuntime().exec(„start c:/test.doc“) erhalte ich eine IO-Exception: CreateProcess: error=2.
Gebe ich den selben Befehl in einem Dos-Fenster ein, so wird Word mit der Datei gestartet.

Hast Du vielleicht den Quellcode zum Starten des Word-Dokuments?

Ich benutzte Windows NT4.0.

Vielen Dank und

MfG
Jörg

Hallo!

Hast Du vielleicht den Quellcode zum Starten des
Word-Dokuments?

Habs ausprobiert, es geht, wenn du direkt das .doc-File startest, also:

Runtime.getRuntime().exec("c:\\test.doc");

Mit start hatte ich dasselbe Problem, das ist nur eine .bat-Datei mit folgendem Inhalt gegangen:

start %1

Starten kannst du es dann so:

Runtime.getRuntime().exec("c:\\test.bat c:\\test.doc");

Ist aber eher überflüssig, wahrscheinlich geht das mit dem File direkt anstarten eh auf allen Windows-Versionen (bin mir wie gesagt nur nicht bei Win95 sicher, hab leider auch keines zum ausprobieren).

Grüße, Robert

Habs ausprobiert, es geht, wenn du direkt das .doc-File
startest,
also:

Runtime.getRuntime().exec(„c:\test.doc“);

Hallo Robert,

vielen Dank für Deine Anwort. Leider habe ich immer noch Probleme mit dem Starten des Prozesses. Starte ich einen neuen Prozess, wie oben beschrieben, so erhalte ich folgende Fehlermeldung:

java.io.IOException: CreateProcess: c:\test.doc error=193
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.(Win32Process.java:64)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:272)
at java.lang.Runtime.exec(Runtime.java:195)
at java.lang.Runtime.exec(Runtime.java:152)
at Ims.Foundation.ausfuehren.main(ausfuehren.java:45)
at java.lang.reflect.Method.invoke(Native Method)
at com.borland.jbuilder.util.BootStrap.invokeMain(
Unknown Source)
at com.borland.jbuilder.util.BootStrap.main(Unknown
Source)

Hast Du vielleicht eine Ahnung, was hier schief läuft?
Meiner Meinung nach, habe ich nicht die Erlaubnis vom Betriebssystem, um einen Prozess zu starten. Gebe ich jedoch den Befehl „c:\test.doc“ in einer Dos-Box ein, startet Word mit der Datei.
Was läuft hier falsch?

Gruß

Jörg

vielen Dank für Deine Anwort. Leider habe ich immer noch
Probleme mit dem Starten des Prozesses. Starte ich einen neuen
Prozess, wie oben beschrieben, so erhalte ich folgende
Fehlermeldung:

Sorry, alles mein Fehler.

Ich habs mit VJ++ kompiliert, da ging es, mit Sun SDK läuft es bei mir leider so auch nicht.

Das mit der Batch-Datei funktioniert mit Sun seltsamerweise auch nicht, er meldet zwar keinen Fehler, tut aber auch genau gar nichts. :o(

Grüße, Robert

Thanks…