Aufruf von Acrobat unter Vista

jean luc

Mitglied
Hallo zusammen,

ich möchte durch klick auf einen Button eine Datei im Acrobat Reader öffnen. Unter WindowsXP hat das wunderbar mit diesen Code geklappt.

Runtime.getRuntime().exec(
new String[] { "rundll32", "url.dll,FileProtocolHandler", "datei.pdf" });


Unter Vista passiert einfach gar nichts. Es gibt noch nicht einmal ne Fehlermeldung. Könnt ihr mir weiterhelfen?!

Viele Grüße,
Jean
 
So hab ich's mal gemacht:
Code:
String pdfFile = "datei.pdf";
Runtime.getRuntime().exec("cmd.exe /c \"" + pdfFile + "\"");

Unter Java 6 gibts diese Möglichkeit:
Code:
Desktop.getDesktop().open(new File(pdfFile));

PS. Zwei Alternativen zu Deiner Version, jedoch beide nicht unter Vista getestet.
 
Hallo,
ich hab fast dasselbe Problem. Bis vor ein Paar Wochen lief Adobe noch einwandfrei. Ich habe dieselbe line benutzt wie du matdacat.

Seitdem ich VISTA hab, passiert nichts mehr. Es kommt nicht einmal eine Fehlermeldung.


Weiß noch jemand Rat?

Danke
 
Hi,
hast Du es alternativ schon mal mit dem ProcessBuilder versucht?

Code:
new ProcessBuilder( kommando ).start();

SUN
 
Zuletzt bearbeitet:
Grüß dich Ronin,
mit dem Process-Builder hab ich noch nie gearbeitet. Wie soll das dann genau ausschaun?

Danke vielmals
 
Hi,
also ich hab mich auf den links umgeschaut.
Wenn ich weiß wo der Pfad ist, dann ist z.b. der aufruf einer webseite kein problem.
Aber ich weiß zu beginn nicht, wo der anwender sein adobe installiert hat

Code:
**
    	   * pdfAcrobat
    	   * ruft das aktuelle PDF im original Acrobat auf
    	   */
  
    	    try{
    	    	
    	    	ProcessBuilder builder = new ProcessBuilder(new String[] { "rundll32",
                        "url.dll,FileProtocolHandler", "Test.pdf"});
    	    	
    	        Process p = builder.start(); 

        	  
    	    }catch(Exception ex){
    	      ex.printStackTrace();
    	    }

Wenn ich also den obrigen Code aufrufe, passiert wieder nichts. nicht einmal eine fehlermeldung.

Weißt du da weiter?
 
Schau mal hier:

Java:
public class PBExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProcessBuilder builder = new ProcessBuilder("rundll32", "url.dll", "FileProtocolHandler", "c:/Test.pdf");
    	
        try {
			Process p = builder.start();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Any Exceptions?");
		} 
	}

}

Du hattest den ProcessBuilder nicht richtig aufgerufen.
Code:
ProcessBuilder builder = new ProcessBuilder("rundll32", "url.dll", "FileProtocolHandler", "c:/Test.pdf");
 
Also ich hatte es so schon am Anfang versucht....

Allerdings kam bei mir die Fehlermeldung:

The constructor ProcessBuilder(String, String, String, String) is undefined...

Daher hab ich dann den ersten Ansatz gewählt. Kommt die Meldung bei dir nicht?

Grüße
 
Negativ, die Meldung kommt bei mir nicht. Das o.g. Beispiel läuft problemlos und wenn die Datei fehlt, gibts ne Exception.
Welche Java-Version nutzt Du?
 
Zurück