# Word-Datei öffnen



## bernd (27. Sep 2004)

Hallo zusammen.
Habe eine Frage, wie ich z.B. Notepad mit Java öffne weis ich.
Aber wie kann ich eine bestehende Worddatei z.B. Readme.doc öffnen?

Gruß und Dank Bernd.
 ???:L


----------



## meez (27. Sep 2004)

Gleich wie mit dem Notepad...Einfach das Word-Excel aufrufen, und den Dateinamen als Argument übergeben...


----------



## bernd (27. Sep 2004)

Hab ich auch gedacht!

```
public void jbuActionPerformed(final ActionEvent evt) {
      try
         {
            Runtime.getRuntime().exec("notepad.exe");
          }
      catch (Exception e) {}
  }
```
 das funktioniert!


```
public void jbuActionPerformed(final ActionEvent evt) {
      try
         {
            Runtime.getRuntime().exec("winword.exe");
          }
      catch (Exception e) {}
  }
```

das nicht!
 ???:L


----------



## meez (27. Sep 2004)

Den Pfad musst du halt auch noch mit angeben...wird irgendow unter Progamme sein...


----------



## bernd (27. Sep 2004)

brauch ich beim Notepad auch nicht!
Wie soll ich bei einem fremden Rechner wissen wo das liegt?
 ???:L


----------



## abollm (27. Sep 2004)

Versuch einmal folgende Eingabe (bei mir hat es dann funktioniert - Pfad natürlich anpassen):

```
Runtime.getRuntime().exec("C:\\Programme\\Microsoft Office\\Office\\winword.exe");
```


----------



## Grizzly (27. Sep 2004)

Nur so ein Idee: Unter Windows sind ja sämtliche Datei-Erweiterungen mit dem Programm verknüpft. Könnt Ihr die Datei nicht einfach direkt oder so aufrufen? Dann müsste Windows doch das entsprechende Programm starten, oder? ???:L


----------



## bernd (27. Sep 2004)

Muss ich ausprobieren, gute Idee!


----------



## bernd (27. Sep 2004)

Nö, will er auch nicht!


----------



## abollm (27. Sep 2004)

Jetzt aber, versuch's einmal so:


```
Runtime.getRuntime().exec("cmd /c start winword.exe");
```


----------



## bernd (27. Sep 2004)

Mach ich! Danke!


----------



## Grizzly (28. Sep 2004)

abollm hat gesagt.:
			
		

> Jetzt aber, versuch's einmal so:
> 
> 
> ```
> ...



Mein Vorschlag wäre:


```
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL worddatei.doc");
```
Dies sollte dann das Programm starten, das mit der Dateierweiterung verknüpft ist, und darin die Datei öffnen.


----------



## bernd (28. Sep 2004)

Grizzly hat gesagt.:
			
		

> abollm hat gesagt.:
> 
> 
> 
> ...



Ja, das ist es!
Jetzt muss man beim Benennen der Word-Datei nur noch darauf achten, das kein Leerzeichen
im Namen ist, sonst gibt es ne Fehlermeldung! 

Vielen Dank für die Hilfe!
 :toll:


----------



## bummerland (28. Sep 2004)

auch mit leerzeichen sollte es gehen. versuch mal den dateinamen in quotes zu setzen (\"...\") oder die leerzeichen zu escapen (mit \\).


----------



## bernd (28. Sep 2004)

Sorry muss mich berichtigen, es lag nicht an den Leerzeichen.
Die Datei habe ich aus dem Verzeichniss in dem die Java Datei lag rausgenommen,
das war der Grund für die Fehlermeldung!
 :meld:


----------



## bernd (28. Sep 2004)

So jetzt gibt´s nur noch ein Problem und zwar beim erstellen der jar-datei!
Das Word.doc in das jar zu packen ist nicht das Problem, aber der Zugriff funktioniert nicht wirklich!
Bei gif Bildern die einen Button schmücken, macht man es ja so:


```
jbuanim.setIcon(new ImageIcon(Guard1.class.getResource("maus.gif")));
```

nur auf ein Word.doc zu zeigen muss wohl anders vorgegangen werden!

 ???:L


----------



## thE_29 (28. Sep 2004)

so sieht mein excel aufruf aus dem jar archiv aus



```
HSSFWorkbook wb = new HSSFWorkbook(benzinliste.class.getClassLoader().
                                               getResource(
          "at/thE_benzl/init.xls").openStream(),true); //holt sich die Datei aus dem Jar File
```

dh, du musst den stream öffnen
also

```
Guard1.class.getRessource("deindoc.doc).openStream(); //und den stream dann schreiben
```


----------



## bernd (28. Sep 2004)

```
public void jbuActionPerformed(final ActionEvent evt) {
      try
         {
            Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL scan.doc");
          }
      catch (Exception e) {}

  }
```

Also bisher siehts bei mir noch so aus!
Allerdings ist das jetzt noch nicht in ein jar gepackt aber funktioniert.
Ich muss mal schauen wie ich das jetzt zurecht bastel.

Ehrlich gesag blicke ich bei deinem Vorschlag noch nicht ganz durch! 
Aber danke erst mal!


----------



## thE_29 (28. Sep 2004)

```
OutputStream out = new FileOutputStream(new File("C:\\test.xls"));
      InputStream in = benzinliste.class.getClassLoader().getResourceAsStream("at/the_benzl/init.xls");
      byte[] b = new byte[1024];
      int len = 0;
        while ( in.read(b) != -1)
          out.write(b);
```


----------



## bernd (28. Sep 2004)

Alles klar! 
Hab´s begriffen, das muss doch auch noch einfacher gehen.
Aber egal ich werd es übernehmen Danke! :applaus: 
 :toll:


----------



## bernd (30. Sep 2004)

abollm hat gesagt.:
			
		

> Jetzt aber, versuch's einmal so:
> 
> 
> ```
> ...



Klappt auch wunderbar!
Nur wenn ich ich ein Jar packe, wird der Pfad nicht mehr gefunden! :-(


----------



## thE_29 (30. Sep 2004)

wo?
welcher pfad?


----------



## bernd (30. Sep 2004)

```
Runtime.getRuntime().exec("cmd /c start winword.exe");
```

Pfad ist blöd ausgedrückt! Was ich meine ist das der Befehl oben funktioniert,
aber wenn ich aus dem Programm ein Jar Archiv erstelle, und den Befehl ausführe wird die Datei nicht mehr gefunden.
(sorry , aber ich weiß nicht wie ich das sonst beschreiben soll).


----------



## Grizzly (30. Sep 2004)

bernd hat gesagt.:
			
		

> ```
> Runtime.getRuntime().exec("cmd /c start winword.exe");
> ```
> 
> ...



Kann es sein, dass Du die Word-Datei mit in das JAR Archiv gepackt hast? Das geht dann nämlich nicht, da ja Word nicht auf Datei im JAR-Archiv zugreifen kann.


----------



## bernd (30. Sep 2004)

Ja hab ich!

Macht man das nicht? Bilder die Buttons schmücken pack ich ja auch mit da rein!
 ???:L


----------



## Grizzly (30. Sep 2004)

bernd hat gesagt.:
			
		

> Ja hab ich!
> 
> Macht man das nicht? Bilder die Buttons schmücken pack ich ja auch mit da rein!
> ???:L



Ja, aber die greifst Du ja auch von Deinem Java Programm aus zu, was auch kein Problem ist. Aber auf die Word-Datei möchtest Du ja mit Word - also einem externen Programm zugreifen.
Lösung: Die Word-Datei vorher aus der JAR-Datei entpacken oder einfach als zusätzliche Datei mitgeben.


----------



## bernd (30. Sep 2004)

Hört sich logisch an! 
Ich hätte auch kein Problem damit, aber ich hab mal ein Programm weitergegeben,
und derjenige ist hingegangen und hat die Jar Datei aus dem Ordner kopiert und auf den Desktop
gelegt.
Zu seinem erstaunen konnte das Programm die Worddatei dann nicht mehr finden.
Ich sagte ihm er solle eine Verknüpfung der Jar Datei auf den Desktop legen da kam dann zurück
"Das ist doch Mist, viel zu kompliziert und so!"

Deswegen wollte ich das mehr oder weniger Idiotensicher machen!


----------



## Grizzly (1. Okt 2004)

bernd hat gesagt.:
			
		

> Hört sich logisch an!
> Ich hätte auch kein Problem damit, aber ich hab mal ein Programm weitergegeben,
> und derjenige ist hingegangen und hat die Jar Datei aus dem Ordner kopiert und auf den Desktop
> gelegt.
> ...



In diesem Fall empfehle ich Dir eine Installation zu basteln. Hier bietet sich bspw. Java Web Start oder ein regulärer Installer wie bspw. der Nullsoft Installer an.


----------



## bernd (1. Okt 2004)

OK, schau ich mir mal an!
Danke.


----------



## Stefan1200 (1. Okt 2004)

Ja hallo, bei anderen Programmen hat man gefälligs auch nicht die Exe Datei auf den Desktop zu packen!

Ich mein die Jar Datei mit der Rechten Maustaste auf den Desktop ziehen und auf Verknüpfung erstellen klicken, ist doch nicht kompliziert!!


----------



## bernd (1. Okt 2004)

Es gibt da so einige Leute, denen kann man´s nicht recht machen.
Da werden dann schon mal Dateien gelöscht, auf die sich eine Veknüpfung bezieht und dann geht´s schon los "Funktioniert nicht mehr" usw. wobei das Highlight immer ist "Funktioniert nicht mehr, ich hab aber nix gemacht!"


----------



## Stefan1200 (1. Okt 2004)

Uff...

Ich stelle mir gerade ein Szenario im RL vor:
Person schmeißt sein Auto Schlüssel weg, geht zum Autoverkäufer und sagt das Auto läuft nicht mehr, ich habe nichts gemacht...

Jetzt weiß ich auch, warum die meisten Programme bei der Installation eine lästige Verknüpfung ohne zu Fragen auf den Desktop packen...


----------



## bygones (1. Okt 2004)

@Stefan1200:
gutes Beispiel... ich denke man sollte vom User auch eine gewisse Grundintelligenz voraussetzen können. Kein Programm würde dann funzen wenn ich einfach die exe oder andere dateien des programms mir nichts dir nichts verschiebe....


----------



## Grizzly (1. Okt 2004)

Stefan1200 hat gesagt.:
			
		

> Ja hallo, bei anderen Programmen hat man gefälligs auch nicht die Exe Datei auf den Desktop zu packen!
> 
> Ich mein die Jar Datei mit der Rechten Maustaste auf den Desktop ziehen und auf Verknüpfung erstellen klicken, ist doch nicht kompliziert!!



Stefan1200, das sind Benutzer. Da musst Du von einem Computer Wissenstand von 0 ausgehen (oder eher von null?  ). Entsprechend ist die Bedienung.


----------



## Stefan1200 (1. Okt 2004)

Grizzly hat gesagt.:
			
		

> Stefan1200, das sind Benutzer. Da musst Du von einem Computer Wissenstand von 0 ausgehen (oder eher von null?  ). Entsprechend ist die Bedienung.



Ist ja in Ordnung, aber wenn ich jemanden sage, das man das nicht machen kann, und Ihm zeige, wie man eine Verknüpfung erstellt, dann setze ich schon voraus, das er den Hinweis nicht ignoriert und nicht trotzdem die Software kaputt macht ;-).


----------



## bernd (1. Okt 2004)

Vieleicht sollte man in einer Hilfedatei ein kleines FAQ mit einbinden,
indem erklärt wird wie man eine Verknüpfung erstellt.
Aber das bringt wohl auch nix, die wird ja eh nicht gelesen!


----------



## Grizzly (2. Okt 2004)

bernd hat gesagt.:
			
		

> [...]Aber das bringt wohl auch nix, die wird ja eh nicht gelesen!


Das kann ich allerdings bestätigen.


----------



## Gast (29. Jan 2008)

Hi @all,
gibs auch ne lösung für dieses Problem Linuxseitig? Für Mac hab ich schon rausgefunden wie man z.B. PDFs öffnet aus java heraus. 

```
Runtime.getRuntime().exec("open " + file.getAbsolutPath());
```
Einfach davor open schreiben, schon macht er es auch für Mac. Bloß bei Linux find ich es nicht herraus. Weis einer von euch die lösung?


----------



## Wildcard (29. Jan 2008)

Schau dir die Klasse Desktop an.


----------



## Guest (29. Jan 2008)

Hi, tja das hab ich auch schon gefunden, bloß mein problem ist ich will/muss java 5 benutzen und erst ab Java 6 gibt es "Desktop"


----------



## Guest (31. Jan 2008)

Hi,
gibt es den keine Lösung unter Linux eine pdf zu öffnen mit Java Version 5?

Wäre klasse wenn es jemand wüsste und mir verraten würde


----------



## Ariol (31. Jan 2008)

EDIT: Doch nicht  :bae:


----------

