Установка и использование MATLAB с программами экранного доступа на MS Windows

(Материал написан на основе MATLAB версии R2014b (8.4.0.150421))
Дата публикации:27.01.2015
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

MATLAB (сокр. от англ. Matrix Laboratory) — это профессиональный программный пакет для технических вычислений и компьютерного моделирования, разрабатываемый компанией MathWorks. Он предоставляет пользователю большое количество функций для анализа данных, покрывающих практически все области математики: от линейной алгебры до мат. статистики. Кроме того, функциональность программы может быть расширена за счёт использования отдельно распространяемых наборов инструментов, так называемых toolbox, представляющих собой коллекции функций, написанных на языке MATLAB для решения определённого класса задач, например, цифровой обработки сигналов или финансового анализа.

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

Некоторые тонкости предварительной подготовки

Главная причина проблем доступности пакета MATLAB заключается в том, что он написан для исполнения в среде Java, отличающейся некоторым своеобразием в реализации accessibility. Java-приложениям, для обеспечения собственной доступности, необходимо наличие специального комплекта библиотек, называющегося Java Access Bridge (JAB), который, до недавнего времени, не входил в стандартный комплект поставки виртуальной Java-машины (JVM). Поэтому для Java ниже версии 1.7.0_06 требуется ручная доустановка данных библиотек.

Тем не менее, самая новая на момент написания данного материала версия MATLAB (R2014b) собрана на базе Java 1.7.0_11, в состав которой уже входит JAB версии 2.03, поэтому ручная доустановка данного набора библиотек не потребуется. В случае же более старых версий MATLAB следует уточнить версию используемой Java, что можно сделать из консоли (cmd) в директории размещения исполняемого файла JVM, введя команду:

java -version

Таким образом, пользователям MATLAB R2014b и новее не требуется дополнительно скачивать и устанавливать набор библиотек JAB, а для более старых версий необходимо проверить версию Java и, если она ниже 1.7.0_06, предварительно загрузить JAB и ознакомиться с алгоритмом его установки.

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

Краткий общий алгоритм

Обеспечение невизуальной доступности MATLAB на платформе Windows предполагает выполнение следующих шагов:

  1. Определение разрядности компонентов
  2. Установка JRE/JDK
  3. Установка и активация JAB
  4. Установка MATLAB
  5. Переназначение клавиатурных команд MATLAB

Шаги 2 и 3 являются необязательными, но могут упростить процесс обеспечения доступности MATLAB, что будет подробно описано ниже.

Шаг 1: Определение разрядности компонентов

Правильное определение разрядности используемой версии Windows является основополагающим моментом всего описываемого процесса, так как при ошибке на этом этапе все последующие действия не дадут корректного результата.

Если пользователь не знает, какую разрядность имеет установленная у него операционная система и затрудняется с выяснением данной информации, то получить подробное руководство по этому вопросу можно в базе знаний Microsoft из статьи с кодом 827218 и названием «Определение разрядности используемой версии Windows». Прочие компоненты, такие как программа экранного доступа, JRE/JDK, JAB и MATLAB тоже имеют 32- и 64-разрядные версии, и выбор правильной архитектуры в отношении них также важен.

Рассмотрим следующую иерархическую последовательность:

  1. MS Windows
  2. Программа экранного доступа
  3. JRE/JDK
  4. JAB
  5. MATLAB

Каждый последующий элемент данного списка должен иметь разрядность, не выше разрядности предыдущего, но на каждом шаге можно понизить разрядность любого из элементов.

Например, если в системе установлен 32-разрядный JRE/JDK, то JAB и MATLAB могут быть только 32-разрядными, а программа экранного доступа может иметь разрядность 32 или 64, но, в свою очередь, не выше, чем у Windows. Тем не менее, разнобой в разрядностях компонентов всё-таки может привести к их некорректному взаимодействию, поэтому рекомендуется придерживаться единой разрядности.

Шаг 2: Установка JRE/JDK

В принципе, данный шаг является не обязательным, так как MATLAB уже поставляется с JRE. Однако наличие JRE/JDK в системе позволит более простым способом обеспечить доступность установщика MATLAB.

Для удобства дальнейшей работы с Java желательно добавить путь к директории, содержащей исполняемый файл JVM, в переменную путей поиска PATH. Сделать это можно в меню «Свойства системы\Дополнительные настройки\Переменные окружения».

Шаг 3: Установка и активация JAB

Данный шаг также является не обязательным и имеет смысл, если не был пропущен шаг 2 с установкой JRE/JDK.

Как уже отмечалось выше, пакет библиотек JAB, для обеспечения доступности Java-приложений, уже входит в состав JRE/JDK 1.7.0_06 и новее, поэтому в данном случае понадобиться лишь его активировать. Если же по какой-то причине используется более старая JRE/JDK, то понадобиться полная ручная установка JAB.

Напомним, что версию установленной JRE/JDK можно узнать консольной командой

java -version

Ну а за подробностями по установке и активации JAB следует обращаться к упомянутой выше статье, посвящённой данному вопросу.

Шаг 4: Установка MATLAB

В данном разделе статьи мы не будем останавливаться на описании общих вопросов установки MATLAB, так как инсталлятор даёт достаточно ясные указания в течение всего процесса. Подробно будут рассмотрены лишь нюансы обеспечения невизуальной доступности интерфейса инсталлятора.

К сожалению, в последней на момент написания данной статьи версии MATLAB содержится JRE, в которой не активирована опция JAB. Это приводит к тому, что уже сам мастер установки MATLAB оказывается недоступным для программ экранного доступа.

Если были выполнены два предыдущих шага с предварительной установкой в систему JRE/JDK и активацией в ней опции JAB, то интерфейс MATLAB может оказаться доступным, так как соответствующий accessibility API будет инициализирован на уровне всей системы. Однако известны случаи, когда даже наличие в системе JRE/JDK с активированным JAB не обеспечивает по умолчанию доступность MATLAB. Главным образом, это характерно для относительно старых версий MATLAB, примерно 2012 года и старше, в состав которых входила ещё JRE 1.6.0.

Если в окне мастера установки MATLAB программой экранного доступа читается только заголовок «MathWorks Installer», то это означает, что поддержка вспомогательных технологий не инициализировалась и придётся вручную конфигурировать встроенную JRE. В этом случае следует в окне мастера нажать клавишу Escape, после чего откроется диалог завершения установки с заголовком «Quit Installer», в котором надо нажать Enter, так как по умолчанию фокус установлен на кнопке «Yes».

После этого следует открыть окно консоли и ввести в нём команду, активирующую JAB во встроенной JRE MATLAB, которая находится внутри временной папки, куда предварительно распаковался установщик.

Например, файл 32-разрядного дистрибутива изначально запускался из корня диска C:

C:\matlab_R2014b_win32.exe

Тогда промежуточная распаковка мастера установки произошла в директорию

C:\_temp_matlab_R2014b_win32\

Команда консоли для включения JAB во встроенной в MATLAB JRE, при описанных условиях, будет выглядеть следующим образом:

"C:\_temp_matlab_R2014b_win32\sys\java\jre\win32\jre\bin\jabswitch.exe" -enable

Ответ консоли в случае успеха будет следующим:

The Java Access Bridge has been enabled.

После этого следует перезагрузить программу экранного доступа и возобновить процесс установки MATLAB с прерванного этапа, запустив файл

C:\_temp_matlab_R2014b_win32\setup.exe

В этот раз содержимое окна инсталлятора будет уже доступным для программ экранного доступа, что позволит пройти процедуру регистрации лицензии и установки MATLAB.

Аналогичным образом активируется JAB и для уже установленного приложения MATLAB. Единственное, что потребуется скорректировать, так это путь к файлу jabswitch.exe в консольной команде:

"C:\Program Files\MATLAB\R2014b\sys\java\jre\win32\jre\bin\jabswitch.exe" -enable

Для справки, если программа уже установлена, узнать версию JRE, встроенной в MATLAB, можно через командное окно путём ввода команды

version -java

Ну а путь к системной директории MATLAB можно выяснить командой

matlabroot

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

Шаг 5: Переназначение клавиатурных команд MATLAB

Ещё одной проблемой, с которой сталкиваются пользователи программ экранного доступа при работе с MATLAB, являются неоптимальные значения клавиатурных сочетаний командного окна, в частности, различные сочетания курсорных стрелок, которые, вместо перемещения курсора по текстовому содержимому окна, либо осуществляют навигацию по всему командному окну, либо перемещают по истории команд. Всё это конфликтует с некоторыми программами экранного доступа под Windows и делает невозможным построчное чтение истории команд и ответов.

Для решения этой проблемы необходимо переназначить данные клавиатурные сочетания, освободив их от значений по умолчанию, делающих невизуальную работу с командным окном MATLAB посредством программ экранного доступа практически невозможной.

Для этого необходимо в меню программы, доступном по нажатию клавиши Alt, активировать пункт «Preferences», в дереве открывшегося диалогового окна настроек развернуть ветку «Keyboard» и на вложенной ветке «Shortcuts» выполнить переназначение.

Эту же операцию можно сделать и посредством ручного редактирования конфигурационных файлов, что может быть удобно в случае, когда необходимо выполнить настройку MATLAB для большого числа пользователей системы или вообще локальной сети университета или лаборатории. Для этого требуется создать в любом текстовом редакторе файл в кодировке UTF-8 без BOM с названием «CustomWindowsSet.xml». Внутрь же данного файла необходимо записать следующие строки текста:

<?xml version="1.0" encoding="utf-8"?>
 <CustomKeySet derivedfrom="Windows" modifieddefault="false">
    <Context id="Global">
       <Action id="previous-history-item">
          <Stroke code="VK_UP" ctrl="on" shift="on"/>
          <Stroke code="VK_KP_UP" ctrl="on" shift="on"/>
       </Action>
       <Action id="next-history-item">
          <Stroke code="VK_DOWN" ctrl="on" shift="on"/>
          <Stroke code="VK_KP_DOWN" ctrl="on" shift="on"/>
       </Action>
    </Context>
    <Context id="CommandWindow">
       <Action id="caret-up"/>
       <Action id="caret-down"/>
    </Context>
 </CustomKeySet>

После этого данный файл следует скопировать в директорию

%APPDATA%\MathWorks\MATLAB\R2014b\

(Вместо «R2014b» будет актуальная версия MATLAB.)

Затем в этой же директории нужно в текстовом редакторе открыть файл «matlab.prf» и в его конец добавить следующие две строки:

CustomKeyBindingSets=SCustomWindowsSet.xml
CurrentKeyBindingSet=SCustomWindowsSet.xml

И в довершение, если программа MATLAB была запущена, необходимо её перезапустить. После этого в ней появится возможность чтения командного окна MATLAB как обычного текстового документа.

К слову, если что-то на каком-то этапе пошло не так, то простым удалением папки пользовательских настроек и запуском MATLAB можно будет восстановить все файлы в первоначальном виде.



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