2008-09-17 18 views
6

Używam Destop.open(), aby uruchomić przeglądarkę .pdf na komputerach z systemem Windows, zarówno Vista i XP, a większość z nich działa dobrze. Jednak na jednym komputerze XP wywołanie nie działa, po prostu wraca bez wyrzucania wyjątków, a przeglądarka nie uruchamia się. Na tym komputerze powiązanie plików jest poprawnie skonfigurowane, o ile wiem: działa podwójne kliknięcie .pdf, podobnie jak polecenie "start xxx.pdf" w wierszu polecenia. Myślę, że to musi być problem z konfiguracją systemu Windows, ale nie mogę tego zrobić.Problem z Java 1.6 i Desktop.open()

Czy ktoś jeszcze widział ten problem?

+0

mam ten sam problem na Vista. Znalazłem raport o błędzie sugerujący, że [odinstalowałeś magiciso] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6546085), ale to nie dotyczy mnie. – blank

+0

Proszę spojrzeć na mój wpis na blogu na ten temat: [java.awt.Desktop open() cicho działa bez wyjątku] (https://stijndewitt.wordpress.com/2010/09/22/java-awt-desktop -open-fail-cicho-bez wyjątku /) –

Odpowiedz

3

Jest to znany problem z wczesnymi wersjami XP SP2, funkcja ShellExecute przestała akceptować identyfikatory URI; aktualizuj łatki komputerów XP.

Do wyjątków upewnij się, że Java Console jest włączona:

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

nadal mam ten problem z jednym z moich klientów, będę sprawdzić, co wersja systemu Windows (o ile pamiętam, że używa Windows 7, 64-bitów). Powiązanie pliku z pdf jest OK (zaznaczone). A on wykorzystuje najnowszą wersję Java (sprawdzone aktualizacje Javy), a więc nadal rzeczywisty problem, jeśli chodzi o mnie chodzi .....

Jednak wpadłem do tego raportu o błędzie: sun bug report 6764271

Mówi się, że może to mieć coś wspólnego z rejestracją niektórych wersji Adobe (przy użyciu READ zamiast OPEN w rejestrze systemu Windows).

Wciąż szkoda, że ​​taki błąd ma niską wartość prio i nadal otwarty błąd (zgłoszony w 2008 r.).

Wkrótce skontaktuję się z moim klientem i zaktualizuję odpowiedź tutaj, gdy tylko zostanie to rozwiązane.

1

Nie mogłem znaleźć odpowiedzi w dowolnym miejscu, ale mam dwie maszyny z 64-bitową wersją systemu Windows 7, które zawierują Desktop.getDesktop(). Open (plik) z nieudanym otwarciem pliku lub dostęp jest odmowy błędu w java 6 i java 7.

Windows Explorer jest w stanie otworzyć aplikacji na podstawie nazwy pliku z rozszerzeniem:

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