2008-09-17 5 views
6

Ich habe Destop.open() verwendet, um einen .pdf-Viewer auf Windows-Rechnern, sowohl Vista als auch XP, zu starten, und die meisten funktionieren einwandfrei. Auf einer XP-Maschine funktioniert der Anruf jedoch nicht, er kehrt einfach zurück, ohne irgendwelche Ausnahmen auszulösen, und der Viewer wird nicht gestartet. Auf dieser Maschine ist die Dateizuordnung richtig eingerichtet, soweit ich das feststellen kann: Ein Doppelklick auf ein .pdf funktioniert genauso wie der Befehl "start xxx.pdf" an der Eingabeaufforderung. Ich denke, es muss ein Problem mit der Windows-Konfiguration sein, aber ich kann es nicht beschreiben.Problem mit Java 1.6 und Desktop.open()

Hat jemand anderes dieses Problem gesehen?

+0

ich das gleiche Problem auf vista haben. Ich habe einen Fehlerbericht gefunden, der darauf hinweist, dass du [magiciso deinstallieren] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6546085), aber das gilt nicht für mich. – blank

+0

Bitte werfen Sie einen Blick auf meinen Blogbeitrag zu diesem Thema: [java.awt.Desktop open() scheitert automatisch ohne Ausnahme] (https://stijndewitt.wordpress.com/2010/09/22/java-awt-desktop -open-failes-implizit-ohne-Ausnahme / –

Antwort

3

Dies ist ein bekanntes Problem mit früheren Versionen von XP SP2, die ShellExecute-Funktion akzeptiert keine URIs mehr; Bringen Sie die XP-Maschinen-Patches auf den neuesten Stand.

die Ausnahmen stellen sicher, dass die Java-Konsole eingeschaltet, um anzuzeigen:

Control Panel->Java Control Panel->Advanced->Java Console. 
0

Ich habe immer noch dieses Problem mit einem meiner Kunden, ich werde prüfen, welche Version von Windows (Soweit ich erinnere Er verwendet Windows 7, 64-Bit). Die Dateiverknüpfung mit pdf ist in Ordnung (das wird überprüft). Und er nutzt die neueste Java-Version (überprüft die Updates von Java), also immer noch ein aktuelles Problem, soweit ich betroffen bin .....

aber ich lief in diesem Bug-Report: sun bug report 6764271

Es wird gesagt, dass es etwas mit der Registrierung einiger Adobe-Versionen zu tun haben könnte (mit READ anstelle von OPEN in der Windows-Registrierung).

Immer noch eine Schande, dass ein Bug wie dieser ist niedrig auf prio und immer noch ein offener Fehler (berichtete 2008).

Ich werde bald mit meinem Kunden überprüfen und meine Antwort hier aktualisieren, sobald ich es gelöst habe.

1

Ich konnte die Antwort nirgends finden, aber ich habe zwei Maschinen mit Windows 7 64 Bit, die die Desktop.getDesktop(). Open (Datei) mit fehlgeschlagen Datei zu öffnen oder Zugriff verweigert Fehler auf Java 6 und Java 7.

Windows Explorer ist in der Lage Anwendungen zu öffnen, basierend auf den Dateinamen mit der Endung:

Runtime rt = Runtime.getRuntime(); 
rt.exec(new String[]{"explorer", "C:\\myfile.pdf"}); 
rt.exec(new String[]{"explorer", "C:\\myfile.wmv"});