# PDF öffnen mit Acrobat Reader



## phyrexianer (11. Jan 2008)

hab nur eine Kurze Frage ;-)

im selben verzeichniss wie meine Jar liegt auch eine PDF datei welche ich mit dem auf dem jeweiligen Rechner befindlichen Software öffnen will.

soll also das gleiche passieren als wenn ich im Explorer auf ein PDF-File klicke

geht dieser aufruf mit einem relativen Pfad ??? wie lautet der "korrekte" cmd-Befehl ???


```
Runtime.getRuntime().exec("L15001d.pdf");
```

über die Kommandozeile reicht dieses aus wenn ich mich in dem Ordner befinde in dem die Datei liegt...


----------



## phyrexianer (7. Feb 2008)

hat keiner eine Idee ????


----------



## MScalli (7. Feb 2008)

würd es eh mit der Klasse Desktop machen..
so in der richtung..


```
if (Desktop.isDesktopSupported()){
     Desktop dt = Desktop.getDesktop();
     try {
    	dt.open(new File (c:\\temp\\test.pdf));
    }catch (Exception ex){
    	ex.printStackTrace();
    }
}
```

wenn du es mit runtime machen musst muss glaub ich ein "cmd /c" vor dem Pfad stehen
Aber wie gesagt.. ab java 1.6 gibt es die Klasse Desktop und mit der klappts einwandfrei
wenn dateiart dem betriebssystem schon bekannt ist.


----------



## Gast (8. Apr 2008)

Hallo, weiß einer zufällig wie ich den Acrobat dazu bringe eine bestimmte Seite aufzurufen?
Möchte Dokument A mit Seite 12 z.B. aufrufen.
Für HTML habe ich was gefunden, da hängt man einfach nur "#page=12" an, dies geht allerdings hier nicht.
Wäre super wenn jemand ne Idee hat.


----------



## *Hendrik (8. Apr 2008)

Hast Du dir das schon mal angesehen (1. Ergebnis).


----------



## Joker (8. Apr 2008)

Desktop ist natürlich was feines. Bei Java 1.5 muss man etwas basteln und bekommt das so einfach auch nicht Plattformunabhängig hin.  

Für Windows ab Win2000 funktioniert: 

```
Runtime.getRuntime().exec("cmd.exe /c start /b handbuch.pdf");
```
wichtig ist das start, dadurch wird das Standardprogramm für PDF geöffnet. 

für 95, 98, ME:

```
Runtime.getRuntime().exec("start.exe /c  handbuch.pdf");
```

Für MacOS:  

```
Runtime.getRuntime().exec("open handbuch.pdf");
```
 
Für Linux gibts da nichts für <1.6, da bleibt einem anscheinend nur die Möglichkeit mehrere PDF Programme auszuprobieren und zu hoffen, das eines davon auch installiert ist. Die KDEs kann mit 
	
	
	
	





```
Runtime.getRuntime().exec("konqueror handbuch.pdf");
```
 abdecken, bei gnome sollte eigentlich immer ein 
	
	
	
	





```
Runtime.getRuntime().exec("evince handbuch.pdf");
```
 funktionieren (das sollte eigentlich schon 99% abdecken, die beiden werden eigentlich von allen Distris mitgeliefert). Zur Sicherheit sollte man aber auch die anderen Programme überprüfen (z.B. kpdf, okular, acroread (das ist der orginal Acrobat Reader, wenn du den natürlich in den Programmanforderungen drin stehen hast würde ich den auch benutzen)), und wenn keines davon gefunden wurde (dürfte sehr sehr unwahrscheinlich sein, aber sicher ist sicher) einen Hinweis für den Nutzer anzeigen.


----------



## Gast (5. Mai 2008)

Hallo,
wie funktioniert es, wenn die jar auf einem usb-stick liegt. da habe ich ja keinen festen pfad. 
kann mir da jemand helfen ?

DANKE


----------



## thE_29 (5. Mai 2008)

Was hat die jar mit dem PDF zum tun?

Nachtrag: Achso, weils im gleichen Pfad liegt! Probiers über die System Variablen auslesen (user.dir)


----------



## HoaX (5. Mai 2008)

unter linux ruft man einfach "see Dateiname" auf, das kümmert sich um die passende anwendung für den typ


----------



## Gast (5. Mai 2008)

Also ich habs immer so gemacht, wenn das pdf im gleichen Verzeichnis wie das jar liegt

```
File file = new File("");
    	String pfad=file.getAbsolutePath();  
    	try {
			Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+pfad+"\\"+"Kurzanleitung.pdf");
		} catch (IOException e1) {
			JOptionPane.showMessageDialog(null,"Die Dokumentation liegt nicht im erwatetem Verzeichnis.");
		}
```

Hoffe ich konnte Dir helfen.


----------

