ClearType, install4j и случай ошибки Java Java
Знаете ли вы, что общего у ClearType (технология сглаживания шрифтов в Windows) с Java (языком программирования и одним из рекомендуемых фреймворков)?
Ничего, кроме того, что они вместе усердно работали, чтобы сделать меня несчастным в течение нескольких месяцев. У меня было какое-то программное обеспечение Java, которое я не мог установить. То есть действительно не мог - даже не выяснить причину или воспроизвести ее на другом ПК.
Недавно меня одобрили для участия в бета-версии Woopra (служба аналитики сайта), и она использует настольный клиент, написанный на Java… Я не смог установить. Это меня очень разозлило. :)
История Все рассматриваемое программное обеспечение было похоже:
настройка на основе install4j; установка вылетает с кучей ошибок. Я обвинял install4j во время первых (около сотни) попыток решить проблему. Позже я постепенно понял, что если бы это было так долго, решение было бы создано и погуглить.
Трассировка После смещения фокуса с install4j я решил продвинуть Java-фреймворк. Раньше я пробовал стабильные версии, поэтому решил выбрать нестабильную версию 1.6 Update 10 Release Candidate.
На самом деле это исправляет сообщения об ошибках, но не дает сбоев. Я также заметил, что в каталоге с установочными файлами был создан новый журнал ошибок. Раньше я видел журналы только во временном каталоге Windows.
В новом журнале ошибок говорилось следующее:
Не удалось отобразить графический интерфейс. Этому приложению требуется доступ к X-серверу. Если у вас есть доступ, вероятно, отсутствует библиотека X. ************************************************* ***************** Вы также можете запустить это приложение в консольном режиме без доступа к X-серверу, передав аргумент -c. Очень странно искать X-Server на других платформах. ПК, не так ли? Поэтому я решил попробовать аргумент «-c». И действительно удалось установить в консольном режиме.
Счастливый конец? Неа. Теперь установленное приложение вылетало. Но это действительно заставило меня задуматься. Если консоль работает, а графический интерфейс - нет - значит, проблема с последним.
Еще один журнал ошибок (в папке приложения) теперь говорил (среди прочего):
Вызвано: java.lang.IllegalArgumentException: -60397977 несовместимо с текстовой клавишей контрастности ЖК-дисплея. Который успешно погуглил мне описание ошибки с Java, неспособным прочитать нестандартную настройку реестра ClearType.
Решение Я немедленно запустил ClearType Tuner из Панели управления и обнаружил, что параметр показывает бессмысленное число. После его исправления все проблемы с Java мгновенно исчезли.
cleartypetuner_screenshot Извлеченные уроки Не спешите винить проблемы с программным обеспечением в одном приложении. Даже незначительные и совершенно не связанные настройки могут запустить смертельную цепную реакцию. Ссылки Среда выполнения Jave http://www.java.com/en/download/index.jsp
ClearType Tuner http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
Woopra http://www.woopra.com/
install4j http://www.ej-technologies.com/products/install4j/overview.html