Повышение доступности Java-приложений на платформах MS Windows посредством Java Access Bridge

Дата публикации:30.01.2013
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

Что такое Java Access Bridge

Java Access Bridge (или сокращённо JAB) — это комплект библиотек для платформ Microsoft Windows, позволяющий элементам интерфейса Java-приложений и апплетов, реализующим accessibility API, взаимодействовать со вспомогательными технологиями на указанных системах.

Java Accessibility API — это часть Java Accessibility Utilities, которые представляют собой набор классов, предоставляющих вспомогательным технологиям доступ к элементам графического пользовательского интерфейса, реализованных через Java API.

Для того чтобы имеющиеся на платформах Windows вспомогательные технологии могли обеспечить доступ пользователя к Java-приложениям, они должны каким-то образом взаимодействовать с Java Accessibility Utilities. Java Access Bridge как раз и отвечает за установление данных связей.

Вспомогательное программное обеспечение, работающее в среде Windows, например, программа экранного доступа, взаимодействует с библиотеками Java Access Bridge, которые, в свою очередь, взаимодействуют с виртуальной машиной Java. Весь процесс заключается в том, что общие Java-библиотеки взаимодействуют с Java Accessibility Utilities. Ну а Java Accessibility Utilities собирают информацию о происходящем в Java-приложении, которую потом и направляют программе экранного доступа через Java Access Bridge.

К сожалению, всё это работает лишь для тех Java-приложений и апплетов, интерфейс которых изначально был разработан с использованием элементов, поддерживающих Java Accessibility API, в частности таких как SWING непосредственно от Oracle или SWT от IBM. Поэтому зачастую даже установка Java Access Bridge Не способна решить всех проблем доступности Java-приложений.

Версии JAB и их загрузка

Долгое время Java Access Bridge существовал в виде отдельного пакета, разные версии которого приходилось устанавливать по-разному. Например, версия 2.0.1 имела полноценный установщик, который осуществлял поиск установленных компонентов Java на компьютере пользователя и добавлял к ним необходимые компоненты Java Access Bridge. Следующая версия Java Access Bridge под номером 2.0.2 требовала установки в виде не самых тривиальных действий по ручному копированию библиотек в различные системные директории. Однако с релиза Java SE 7U6, Java Access Bridge вошёл в общий пакет поставки, поэтому больше не нуждается в ручной установке, но по умолчанию JAB отключён и для использования требует предварительной активации.

Последняя версия Java Access Bridge, распространяемая отдельно и нуждающаяся в ручной установке, имеет версию 2.0.2 и может быть скачена с сайта Oracle. На момент написания данного материала страница загрузки имела следующий адрес http://www.oracle.com/technetwork/java/javase/downloads/jab-2-0-2-download-354311.html. Если со временем адрес изменится, то данную страницу можно найти через поисковую систему Google, введя запрос :

Java Access Bridge Downloads site:oracle.com

Чтобы перейти к скачиванию, сначала требуется принять лицензионное соглашение, отметив радиокнопку «Accept License Agreement», а затем нажать на ссылку для загрузки, появившуюся вместо группы радиокнопок под заголовком «Java Access Bridge Downloads».

Начиная с Java 7U6 в комплект поставки входит Java Access Bridge, версии 2.0.3, библиотеки которого уже содержатся как в Java Development Kit (JDK), так и в Java Runtime Environment (JRE).

Для людей, не занимающихся разработкой Java-программ, достаточно просто JRE, которая также доступна для загрузки на сайте Oracle. Кроме того, JRE (private) из состава JDK, отличается от JRE (public), распространяемой отдельно и, при активации Java Access Bridge, требует дополнительных действий по использованию Accessibility API в рамках всей системы (подробнее см. в конце статьи). Поэтому для обычных пользователей рекомендуем именно вариант публичной Java Runtime Environment. Страница загрузки её последней версии на момент написания материала имела следующий адрес http://www.oracle.com/technetwork/java/javase/downloads/java-se-jre-7-download-432155.html. При его изменении эту страницу можно также найти в Google посредством запроса:

Java SE Runtime Environment Downloads site:oracle.com

Здесь также требуется принять лицензионное соглашение, отметив радиокнопку «Accept License Agreement», а потом нажать на ссылку для загрузки версии под интересующую операционную систему в появившейся таблице. Для Windows это либо «Windows x86 Offline» для 32-разрядных, либо «Windows x64» для 64-разрядных архитектур.

Тем не менее, многие программы, использующие виртуальную машину Java, уже имеют её в своём составе, поэтому для работы с ними отдельная установка JRE может не требоваться. Будет необходимо лишь подключить библиотеки Java Access Bridge.

Также отметим, что с февраля 2013 года, Oracle начинают процесс свёртывания поддержки Java 6, поэтому, при всех прочих равных, лучше использовать Java 7. Однако возможны ситуации, когда будет необходимо использовать более старые версии Java, в которые библиотеки Java Access Bridge ещё не интегрированы, поэтому далее мы рассмотрим оба варианта.

Установка и удаление Java Access Bridge 2.0.2 для Java ниже 1.7.x

После загрузки Java Access Bridge, поставляемого в виде обычного ZIP-файла, следует распаковать данный архив в отдельную директорию. Процесс установки JAB представляет собой копирование файлов из архива в определённые системные директории и варьируется в зависимости от разрядности Windows.

После активации Java Access Bridge, следует перегрузить всё вспомогательное программное обеспечение, использующее Java Accessibility API, чтобы оно смогло получать расширенную информацию о элементах окна.

Установка на 32-разрядных версиях Windows

Условные обозначения:

  • Маской %WINDOWSHOME% будет обозначаться путь к директории установки Windows, например, «C:\WINDOWS\».
  • Маской %JAVAHOME% будет обозначаться путь к директории установки JRE, например, «C:\Program Files\Java\jre6».

Для установки Java Access Bridge следует скопировать обозначенные файлы в следующие системные директории:

Файл Директория копирования
WindowsAccessBridge.dll %WINDOWSHOME%\SYSTEM32\
JavaAccessBridge.dll %JAVAHOME%\bin\
JAWTAccessBridge.dll %JAVAHOME%\bin\
accessibility.properties %JAVAHOME%\lib\
access-bridge.jar %JAVAHOME%\lib\ext\
jaccess.jar %JAVAHOME%\lib\ext\

Установка на 64-разрядных версиях Windows

Условные обозначения:

  • Маской %WINDOWSHOME% будет обозначаться путь к директории установки Windows, например, «C:\WINDOWS\».
  • Маской %JAVAHOME64% будет обозначаться путь к директории установки 64-разрядных версий JRE, например, «C:\Program Files\Java\jre6».
  • Маской %JAVAHOME32% будет обозначаться путь к директории установки 32-разрядных версий JRE, например, «C:\Program Files (x86)\Java\jre6».

Для установки Java Access Bridge следует скопировать обозначенные файлы в следующие системные директории:

Файл Директория копирования
WindowsAccessBridge-32.dll %WINDOWSHOME%\SYSWOW64\
WindowsAccessBridge-64.dll %WINDOWSHOME%\SYSTEM32\
JavaAccessBridge-32.dll %JAVAHOME32%\bin\
JavaAccessBridge-64.dll %JAVAHOME64%\bin\
JAWTAccessBridge-32.dll %JAVAHOME32%\bin\
JAWTAccessBridge-64.dll %JAVAHOME64%\bin\
accessibility.properties %JAVAHOME32%\lib\ и %JAVAHOME64%\lib\
(в зависимости от установленных в системе JDK и JRE)
access-bridge-32.jar %JAVAHOME32%\lib\ext\
access-bridge-64.jar %JAVAHOME64%\lib\ext\
jaccess.jar %JAVAHOME32%\lib\ext\ и %JAVAHOME64%\lib\ext\
(в зависимости от установленных в системе JDK и JRE)

Удаление

Для удаления Java Access Bridge 2.0.2 следует сначала выгрузить все экземпляры вспомогательного программного обеспечения, использующего Java Accessibility API, а потом удалить из системных директорий все файлы, скопированные туда при установке (см. выше).

Активация и деактивация Java Access Bridge для Java 1.7.0_06 и выше

Как уже отмечалось, в Java 7, начиная с шестого обновления, библиотеки Java Access Bridge входят в общий комплект поставки. Однако возможна ситуация, когда в скаченной с сайта Oracle JRE 7 этих библиотек всё-таки ещё не будет. Это означает, что после установки виртуальной машины требуется проверить наличие обновлений.

Определить, имеется ли JAB в среде Java или нет, можно путём проверки наличия среди её системных файлов утилиты jabswitch. Она должна располагаться по пути «C:\Program Files\Java\jre7\bin\jabswitch.exe».

Для операционных систем Windows, начиная с Vista, это также можно проверить через Центр специальных возможностей, где наличие Java Access Bridge 2.0.3 должно проявляться в виде флажка «Enable Java Access Bridge» в разделе настроек использования компьютера без экрана.

Если обозначенный флажок и утилита отсутствуют, то требуется обновить установленную в системе JRE, в противном же случае можно сразу переходить к активации Java Access Bridge.

Обновление Java

Выполнить обновление Java можно через Control Panel, которую можно открыть либо через ярлык «Java» в меню программ, либо напрямую, запустив файл «C:\Program Files\Java\jre7\bin\javacpl.exe».

Однако как раз на этом этапе незрячий пользователь может столкнуться с той проблемой, ради решения которой всё и затевалось, а именно с недоступностью окна Control Panel для программ экранного доступа, так как оно тоже спроектировано посредством инструментария Java. Справиться с этой трудностью можно тремя способами:

  1. Прибегнуть к помощи зрячего помощника, чтобы запустить проверку обновлений из окна Java Control Panel.
  2. Подождать некоторое время, пока Java автоматически не проверит обновления и не предложит их установить в виде соответствующего уведомления в трее, которое будет уже полностью доступным.
  3. Вслепую запустить проверку обновлений в окне Java Control Panel.

В дополнительных пояснениях нуждается только третий способ.

Дело в том, что при открытии Java Control Panel, фокус всегда встаёт на заголовок первой вкладки с названием «General» (Общее). Незрячему пользователю, после открытия данного окна, требуется сначала один раз нажать стрелку вправо, чтобы переместиться на вкладку «Update» (Обновление), а потом четыре раза Tab, чтобы перейти к кнопке «Update Now» (Обновить сейчас). После этого, остаётся только нажать клавишу Enter, и процесс проверки обновлений будет запущен.

При обнаружении обновлений, в отдельном окне будет выведено соответствующее уведомление «Java Update Available» (Доступно обновление Java) и предложением их установки. Для выполнения этой операции достаточно простого нажатия на кнопку «Install» (Установить).

После этого среда Java, установленная в системе, будет обновлена и в том числе получит недостающие библиотеки Java Access Bridge.

Напоследок отметим, что были замечены случаи, когда имеющаяся в системе Java 6U37 препятствовала обновлению Java 7, поэтому рекомендуется удалить все предыдущие версии Java, если гарантировано имеющиеся обновления не удаётся обнаружить.

Активация и деактивация

Активировать Java Access Bridge можно двумя способами: через командную строку или через графический пользовательский интерфейс.

Активация через графический интерфейс осуществляется путём отметки уже ранее упомянутого флажка в Центре специальных возможностей, но этот способ подходит лишь для систем Windows Vista и новее. Для этого необходимо выполнить следующие действия:

  1. Через меню или горячей клавишей WinKey+U открыть Центр специальных возможностей;
  2. Перейти в раздел «Использование компьютера без экрана»;
  3. Отметить флажок «Enable Java Access Bridge» (Включить Java Access Bridge).

Этот вариант может оказаться более удобным для пользователей, не привычных к работе через терминал. Однако следует отметить, что через графический интерфейс JAB можно только активировать, а для его деактивации придётся всё равно использовать командную строку, так как обозначенный флажок здесь работать уже не будет.

После активации Java Access Bridge, следует перегрузить всё вспомогательное программное обеспечение, использующее Java Accessibility API, чтобы оно смогло получать расширенную информацию о элементах окна.

Управление Java Access Bridge посредством командной строки осуществляется через утилиту jabswitch.

Сперва, через диалог выполнить, вызываемый по WinKey+R, следует запустить командную строку

cmd

Далее для удобства установить в качестве директории по умолчанию место нахождение утилиты jabswitch

cd «c:\program files\java\jre7\bin»

Утилита jabswitch имеет три ключа, которые служат для выполнения следующих операций:

Активация Java Access Bridge

jabswitch /enable

Деактивация Java Access Bridge

jabswitch /disable

Получение информации о версии Java Access Bridge

jabswitch /version

Закрыть терминал можно командой

exit

После активации Java Access Bridgeи перезагрузки вспомогательного программного обеспечения, можно снова запустить Java Control Panel и убедиться, что её интерфейс стал доступен.

Нюансы работы на 64-разрядных версиях Windows

Говоря о наиболее распространённых программах экранного доступа — JAWS и NVDA, следует отметить, что при работе на 64-разрядных версиях Windows, взаимодействие с Java Access Bridge поддерживают не все их версии.

Программа JAWS способна работать с Java Access Bridge на 64-разрядных платформах лишь начиная с версии 12.0.1158, а NVDA — с версии 2011.x.

Кроме того, использование 64-разрядного JAWS с 32-разрядной Java Runtime Environment приведёт к невозможности программы экранного доступа корректно обрабатывать содержимое экрана. Поэтому в такой ситуации правильным будет установить 64-разрядную версию JRE.

Примечание для Java-разработчиков

Ранее уже отмечалось, что JRE private, входящая в состав Java Development Kit, отличается от JRE public, распространяемой отдельно от пакета разработки. Однако если речь идёт о Java-программисте, то наличие JDK для него является необходимым. Поэтому для данной категории пользователей следует уточнить, что JRE из состава JDK не регистрирует себя в системе, не копирует свои файлы в другие системные директории и не создаёт веток реестра. В том числе, JRE private не копирует динамическую библиотеку, относящуюся к Java Access Bridge, в соответствующую общую системную директорию Windows.

Таким образом, если планируется использовать Java Access Bridge совместно с JRE из состава JDK, то дополнительно требуется вручную скопировать библиотеку «WindowsAccessBridge*» из папки «C:\Program Files\Java\jre7\bin\» в соответствующую системную директорию, в соответствии с разрядностью Windows (подробнее см. ручную установку JAB 2.0.2).



Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2024