Проблема с Java 1.6 и Desktop.open ()

Я использовал Destop.open () для запуска программы просмотра .pdf на компьютерах с Windows, как Vista, так и XP, и большинство из них работают нормально. Однако на одной машине XP вызов не работает, просто возвращается без выдачи исключений, и программа просмотра не запускается. На этой машине ассоциация файлов настроена правильно, насколько я могу судить: двойной щелчок по файлу .pdf работает, как и команда «start xxx.pdf» в командной строке. Я думаю, что это проблема конфигурации Windows, но не могу понять.

Кто-нибудь еще видел эту проблему?

У меня такая же проблема с перспективой. Я нашел отчет об ошибке, в котором говорится, что вы удалить magiciso, но это не относится ко мне.

blank 19.12.2008 12:20

Пожалуйста, взгляните на мою запись в блоге по этой теме: java.awt.Desktop open () терпит неудачу без исключения

Stijn de Witt 07.11.2014 00:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
6
2
2 449
3

Ответы 3

Это известная проблема ранних версий XP SP2, функция ShellExecute перестала принимать URI; обновить исправления для машин XP.

Чтобы просмотреть исключения, убедитесь, что консоль Java включена:

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

У меня до сих пор эта проблема с одним из моих клиентов, проверю, какая версия windows (насколько я помню, он использует windows 7, 64-бит). Связь файла с pdf в порядке (проверено). И он использует последнюю версию java (проверял обновления java), так что, насколько мне известно, проблема все еще актуальна ...

Однако я столкнулся с этим отчетом об ошибке: Отчет об ошибке Sun 6764271

Говорят, что это может иметь какое-то отношение к регистрации некоторых версий Adobe (с использованием READ вместо OPEN в реестре Windows).

По-прежнему жаль, что такая ошибка имеет низкий приоритет и все еще является открытой ошибкой (о которой сообщалось в 2008 году).

Я скоро свяжусь со своим клиентом и обновлю свой ответ здесь, как только у меня будет решение.

Я нигде не мог найти ответ, но у меня есть две машины с 64-разрядной версией Windows 7, которые не работают с Desktop.getDesktop (). Open (file) с ошибкой при открытии файла или отказе в доступе на java 6 и java 7.

Проводник Windows может открывать приложения на основе имени файла с расширением:

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

Другие вопросы по теме