ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
6151
6151
EMPFEHLEN
-
Hallo,
ich will mittels ProcessBuilder Klasse div. Dateien mit dem entsprechenden Programm aufrufen lassen, dh. entweder mit Visio oder Excel. Dazu benutze ich folgenden simplen Code:
Code :1 2
ProcessBuilder builder = new ProcessBuilder("excel", "test.xls"); Process p = builder.start();
würde ich "excel" zb auf notepad od ultraedit ändern und stattdessen ein test.txt öffnen wollen klappt alles, aber bei office-programmen (visio, winword, excel) verweigert er mir den Dienst bzw. schickt mir einen error=2.
Ehrlich gesagt hab ich keinen Plan wieso es nicht geht, ich will aber auch keine fixen Pfadangaben machen müssen zu den jeweiligen Programmen, dh. die Lösung muss irgendwie in diese Richtung gehen, nämlich dass er einfach Excel oder Visio öffnet, je nachdem was ich ihm halt sage.
Wäre da über Hilfe echt dankbar.
-
Hallo Daelrik,
der Texteditor in Windows heißt Editor, du rufst ihn aber mit Notepad auf, weil das sein interner Name ist. Ebenso kann man bspw. den Internet Explorer mit iexplore aufrufen. Oder den Windows Media Player mit wmplayer. Schau mal in deinem Programmordner wie der genaue Name von der Wordanwendung lautet. Alternativ kannst du auch in der Verknüpfung zu Word im Startmenü oder dem Desktop nachschauen (Im Feld Ziel).
Das wäre eine mögliche Fehlerquelle die mir einfällt. Alle Angaben ohne Gewähr!
Vg Erdal
-
Hallo Daelrik,
konnte mit absoluten Pfaden eine Datei mit OpenOffice Writer öffnen. Allein der Programmname hat jedoch nicht funktioniert.
Code :1 2 3 4 5 6 7 8 9 10 11
import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { ProcessBuilder builder = new ProcessBuilder( "C:\\Programme\\OpenOffice.org 2.0\\program\\swriter\\", "C:\\test.odt"); Process p = builder.start(); } }
Vg Erdal
-
30.09.06 11:18 #4
- Registriert seit
- Nov 2004
- Beiträge
- 284
Das man das nur mit dem Programmnamen aufrufen will, kann ja auch nicht klappen

Windows muss ja wissen wo das Programm sich befindet. Notepad z.B. liegt im Windows-Ordner, der automatisch in der Path/Classpath-Variable drinsteht (in der Windows nach Programmen sucht). Ultraedit hat sich wahrscheinlich auch in diese Variable eingetragen, weshalb das auch funktioniert..
Was du machen könntest (wenn du möchtest, dass die Standartapplikation geöffnet wird - z.B. Excel für .xls) kannst du das verwenden:Code java:1
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "test.xls");
Gruß
-
Classpath, aha aha.. naja dachte es ginge mit excel auch ganz normal weil mans zb unter "Ausführen.." auch simpel mit "excel" aufrufen kann, genau wie den editor mit "notepad" oder halt den ultraedit mit "ue32" .. egal, das hilft jetzt schon ein kleines bisschen mit dem Runtimebeispiel. Also schonmal dickes Danke dafür

Mir stellt sich aber jetzt noch eine Frage: ich arbeite teils bei Excel auch mit XML files, da xml aber standardmässig nicht excel zugeordnet ist als Standardprogramm (was ja ganz gut so is) steh ich jetzt aber natürlich wieder vor dem Problem, dass ich diese xml files nicht per knopfdruck mit excel öffnen kann. Wär es etvl sinnvoll bzw überhaupt möglich den Standort der excel.exe auf dem PC zu suchen und dann vom programm den pfad zu nehmen?
Ähnliche Themen
-
Processbuilder mit timeout
Von Stiffler66 im Forum Java GrundlagenAntworten: 5Letzter Beitrag: 05.02.10, 11:58 -
ProcessBuilder
Von IroNHeinZ im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 20.12.09, 14:59 -
ProcessBuilder - Vista ?
Von Ashaman im Forum JavaAntworten: 9Letzter Beitrag: 18.05.08, 19:32 -
Probleme beim ProcessBuilder
Von Dukeatcoding im Forum JavaAntworten: 2Letzter Beitrag: 24.08.07, 13:08 -
ProcessBuilder, src - bin?
Von flashray im Forum JavaAntworten: 4Letzter Beitrag: 04.06.07, 21:12





Zitieren
Login




