Все о Java. Что такое, как проверить версию, обновить и как устранить ошибки, например java апплет не загружен. Загружен - не загружен? Проверка доступности апплета из JavaScript

Вопросы безопасности Технические условия и возможности Что такое Internet-Банкинг для корпоративных клиентов?
Internet-Банкинг предназначен для предоставления услуг электронного банкинга корпоративным клиентам в онлайне.
В Internet-Банкинге корпоративные клиенты могут формировать, подписывать и отправлять в Банк все типы финансовых документов, работать со справочниками корреспондентов и бенефициаров, отслеживать статусы документов, получать выписки и оборотно-сальдовые ведомости по своим счетам за произвольный период, обмениваться с банком письмами.
Работать можно через любой web-браузер: Internet Explorer Firefox, Opera, Safari, Chrome и на всех настольных платформах: Windows, Mac OS X, Linux.
Internet-Банкинг обеспечивает гарантированный уровень безопасности, содержит механизмы шифрования информации и ЭЦП, поддерживает работу с USB-токенами и смарт-картами «iBank 2 Key».
Internet-Банкинг взаимодействует с бухгалтерскими программами (1С и др.), поддерживает одновременную работу сотрудников из разных офисов.
Какие требования предъявляются к компьютеру для работы в Internet-Банкинге?
  • Любой современный компьютер с объемом свободной оперативной памяти не менее 128 Мбайт.
  • Любая современная операционная система - Windows 2000 и старше, Mac OS X, Linux и др.
  • Любой современный web-браузер c поддержкой Java - Microsoft Internet Explorer, Opera, Firefox, Safari, Chrome и др.
  • Доступ в Интернет. Рекомендуемая скорость соединения - 33,6 Кбит/сек и выше. В случае доступа в Интернет по телефонной коммутируемой линии необходимо наличие современного модема.
  • Для работы необходимо установить Java-машину, которую можно скачать с сайта разработчика .
  • Для защиты информации в систему «iBank 2» встроены СКЗИ, которые реализуют криптографические алгоритмы в соответствии с ГОСТ 28147-89 (шифрование, имитовставка), ГОСТ Р34.10-2001 (ЭЦП на эллиптических кривых) и ГОСТ Р34.11-94 (хеш-функция).
    Для использования СКЗИ получите у представителей Банка файлы необходимых криптобиблиотек и установите их к себе на компьютер.

Можно ли работать в Internet-Банкинге с разных компьютеров?
Да, можно. Поскольку Internet-Банкинг является модулем системы удаленного обслуживания «iBank 2», расположенной на сайте Банка, а не программой, которая устанавливается на конкретный компьютер. Для входа в Internet-Банкинг Вам необходимы компьютер, подключенный к сети Интернет, ключ ЭЦП и пароль.

Регистрация в «Internet-Банкинг» Как начать использовать Internet-Банкинг?
Вам необходимо выполнить следующие действия:
  • самостоятельно пройти регистрацию на сайте Вашего Банка. По окончании регистрации будут сгенерированы открытый и секретный ключи ЭЦП и сертификат открытого ключа ЭЦП, который необходимо распечатать, заполнить и заверить печатью Вашей организации (количество необходимых экземпляров сертификата регламентируется Банком);
  • далее Вам следует прийти в одно из отделений Вашего Банка и заключить договор на оказание услуг с использованием системы «iBank 2». При визите в Банк Вам необходимо предъявить документ, удостоверяющий личность и сертификат открытого ключа ЭЦП.

Ничего не происходит при попытке зарегистрироваться. Не запускается Java-апплет.
Ниже описаны наиболее распространенные причины невозможности запуска апплета и способы их решения: Открылась страница регистрации, на которой написано: «Загрузка Java-апплета...» и более ничего.
Причина : Возможно на Вашем компьютере еще не установлена Java-машина.
Решение : Установите Java и еще раз перейдите на страницу регистрации. Актуальную версию Java всегда можно скачать с сайта разработчика .

Причина : Возможно в настройках Вашего браузера и/или proxy-сервера включена блокировка активных сценариев Java.
Решение : Проверьте настройки Вашего браузера/proxy-сервера.
Internet Explorer 7.0 : Запустите браузер, в главном меню выберите пункт Сервис->Свойства обозревателя , перейдите на вкладку Безопасность Другой . В списке Параметры перейдите к разделу Сценарии->Активные сценарии и установите флаг Разрешить .

Появилось сообщение: «Подождите идет загрузка Java-апплета» и более ничего.
Причина : Возможно в настройках Вашего браузера установлен запрет исполнения Java-скриптов.
Решение : Проверьте настройки Вашего браузера.
Internet Explorer 7.0: Запустите браузер, в главном меню выберите пункт Сервис->Свойства обозревателя , перейдите на вкладку Безопасность . Выберите требуемую зону Интернета и нажмите кнопку Другой . В списке Параметры перейдите к разделу Сценарии->Выполнять сценарии приложений Java и установите флаг Разрешить .
Не запускается Java-апплет.
Причина : Использование устаревшей версии java.
Решение : Internet-Банкинг успешно работает со следующими версиями: Java 2 Standard Edition Runtime Environment Version 1.4.2 или выше. При использовании USB-токенов «iBank 2 Key» требуется Java SE 6. Рекомендуется включать автоматическое обновление и использовать последнюю версию Java. Актуальную версию всегда можно скачать с сайта разработчика .
Java-апплет не подключается к банковскому серверу.
Причина : Проблемы с подключением могут быть вызваны несколькими причинами, начиная от наличия у Вас локальных сетевых экранов (Firewall) и заканчивая блокировкой портов Вашим Интернет-провайдером.
Решение : Необходимо связаться с администратором банка для уточнения номеров TCP-портов, которые необходимо открыть в IP-фильтре на Firewall.
Что означает сообщение: «На Вашем компьютере не установлено криптосредство»?
Для защиты информации в систему «iBank 2» встроены СКЗИ, которые реализуют криптографические алгоритмы в соответствии с ГОСТ. Для использования СКЗИ получите у представителей Банка файлы необходимых криптобиблиотек и установите их к себе на компьютер.

Что означают предупреждения системы безопасности web-браузера?
Отображение сообщений об ошибках сертификатов означает, что на посещаемом сайте возникли проблемы с сертификатами (истек срок действия сертификата, сертификат данного сайта получен из ненадежного источника и пр.). Сертификаты используются, чтобы установить идентификацию сторон и создать доверительные отношения для безопасного обмена данными. При появлении предупреждений об ошибках на сайте, который вы успешно посещали ранее, обратитесь к сотрудникам Банка для сообщения о проблеме и уточнения Ваших дальнейших действий.

Если при регистрации допущены орфографические ошибки, это мешает потом подписанию Сертификата, Договора и т. д.?
Если орфографические ошибки обнаружены в наименовании организации, Ф. И. О. подписантов - потребуется перерегистрация (новая регистрация).

Ключи ЭЦП и Сертификаты Куда сохранять ключ ЭЦП при регистрации?
Для защиты секретных ключей ЭЦП от хищения вредоносными программами рекомендуется использовать персональный аппаратный криптопровайдер (ПАК) - USB-токен или смарт-карту «iBank 2 Key».
В случае отсутствия ПАК «iBank 2 Key» Вы можете сохранить ключ ЭЦП на любой съемный носитель - диск, флэш-карта (небезопасный вариант).

Каких правил следует придерживаться при выборе пароля к ключу ЭЦП?

  • Пароль должен содержать не менее 6 различных символов;
  • Желательно, чтобы пароль состоял из латинских букв в разных регистрах, цифр и специальных символов;
  • Ваш пароль не должен состоять из одних цифр (так его легче подсмотреть "из-за спины"), не должен быть слишком коротким и состоять из символов, находящихся на одной линии на клавиатуре;
  • Пароль не должен быть значимым словом (Ваше имя, дата рождения, девичья фамилия и т. д.), которое можно легко подобрать или угадать.
Как распечатать Сертификат открытого ключа ЭЦП при регистрации, если с первого раза этого сделать не удалось?
Необходимо перейти на страницу входа в Internet-Банкинг и повторно нажать кнопку Новый клиент . Откроется окно, в котором необходимо выбрать пункт Администрирование ключей ЭЦП . Далее укажите местоположение Вашего созданного ключа ЭЦП и нажмите кнопку печать. Откроется стандартное окно печати документа.

Что делать при возникновении подозрений о компрометации ключей ЭЦП?
Возможные случаи компрометации:

  • хищение носителя ключей ЭЦП (ПАК «iBank 2 Key», USB-накопитель и пр.);
  • обнаружение попытки несанкционированного доступа к системе «iBank 2»;
  • увольнение сотрудника, имевшего доступ к ключам ЭЦП.
При возникновении любых подозрений о компрометации необходимо прекратить использование ключа ЭЦП, обязательно сообщить в Банк и заблокировать ключи ЭЦП. Далее Вам предложат сформировать новые ключи ЭЦП.
Что делать, если один из владельцев ключей ЭЦП планирует уйти в отпуск и не сможет подписывать документы?
Необходимо оформить ключи ЭЦП на замещающего сотрудника, а также предоставить в Банк необходимые документы, подтверждающие полномочия замещающего сотрудника и их срок. Рекомендуем связаться с сотрудниками Банка для получения более детальных рекомендаций.
Что означает и что делать в случае возникновения сообщения: «До окончания срока действия Вашего ключа осталось n дней»
По истечению n дней Вы не сможете войти и работать в Internet-Банкинге с этим ключем ЭЦП. А значит Вам необходимо сформировать новые ключи ЭЦП, по окончании формирования распечатать и заверить печатью организации сертификат открытого ключа ЭЦП и обратиться в обслуживающее Вас отделение Банка для регистрации и дальнейшего использования нового ключа в Вашей работе. USB-токены и смарт-карты «iBank 2 Key» Что такое USB-токен и смарт-карта «iBank 2 Key»?
Для защиты Ваших секретных ключей ЭЦП от хищений рекомендуется использовать в системах электронного банкинга персональный аппаратный криптопровайдер USB-токен «iBank 2 Key».
USB-токен «iBank 2 Key» - это аппаратное USB-устройство, состоящее из PC/SC-совместимого USB-кардридера и SIM-карты, в которой реализованы все российские криптоалгоритмы и имеется защищенная область памяти, позволяющая хранить до 64-х секретных ключей ЭЦП.
Главное достоинство USB-токена «iBank 2 Key» - неизвлекаемость секретного ключа ЭЦП клиента и формирование его ЭЦП под электронным документом по российскому криптографическому алгоритму ГОСТ Р34.10-2001 непосредственно внутри устройства. На вход USB-токена передается электронный документ, на выходе устройства - ЭЦП под документом. При этом секретный ключ ЭЦП генерируется самим USB-токеном, хранится в защищенной памяти токена и никогда, никем и ни при каких обстоятельствах не может быть считан из него.
Для корректной работы ПАК «iBank 2 Key» может потребоваться установка специального драйвера. Все установочные файлы драйверов доступны на сайте «iBank2.RU».
Подробную информацию Вы можете узнать из Руководства по работе с USB-токенами и смарт-картами «iBank 2 Key» .

Смарт-карта «iBank 2 Key» полностью аналогична USB-токену «iBank 2 Key». К тому же они компактны, удобны в использовании и хранении.
Где в компьютере можно увидеть USB-токен «iBank 2 Key», когда его подключишь?
USB-токен - это не «флешка», поэтому его нельзя увидеть, кликнув по ярлыку «Мой компьютер». Его можно увидеть только в «Диспетчере устройств» как «Smart card reader»-«USB Token Device».
При входе в Internet-Банкинг невозможно выбрать тип хранилища «USB-токен или смарт-карта».
ВАЖНО! Сначала устанавливается драйвер, а только потом USB-токен «iBank 2 Key» вставляется в порт компьютера!
Если Вы сделали наоборот, то извлеките USB-токен из порта. В диспетчере устройств компьютера найдите «Устройство чтения Смарт-карт» и удалите все его компоненты. Установите драйвер USB-токена «iBank 2 Key» повторно. Перезагрузите компьютер. Только после этого Вы можете подключать USB-токен.
Невозможно создать новый ключ ЭЦП при использовании смарт-карты «iBank 2 Key».
Установите Sun Java Plugin 1.6 . Другие версии Java не поддерживают технологию работы со смарт-картами. Повторите процесс регистрации.
Почему я не могу выбрать USB-токен «iBank 2 Key» в поле выбора ключа?
При возникновении этой ошибки попробуйте установить последнюю версию Java-машины.
У меня Windows Vista. Не устанавливается драйвер USB-токена «iBank 2 Key».
При установке драйвера USB-токена «iBank 2 Key» для Windows Vista необходимы права АДМИНИСТРАТОРА, т. е. необходимо запускать исполняемые файлы от имени администратора.

Вопросы безопасности Механизмы защиты информации в системе «iBank 2».
«iBank 2» относится к классу систем защищенного электронного документооборота.
Для обеспечения информационной безопасности в системе «iBank 2» используются:
  • Электронная цифровая подпись (ЭЦП) под электронными документами - для обеспечения целостности и аутентичности (доказательство авторства) документов в системе.
    Для формирования ЭЦП клиента в системе реализованы российские криптографические алгоритмы в соответствии с ГОСТ 28147-89 (шифрование, имитовставка), ГОСТ Р34.11-94 (хеш-функция) и ГОСТ Р34.10-2001 (ЭЦП на эллиптических кривых).
  • Механизм криптографической аутентификации сторон - для обеспечения защищенного взаимодействия через Интернет. Обеспечение криптографической аутентификации сторон достигается применением защищенного протокола SSL в процессе установления соединения между web-сервером банка и клиентом. Для подтверждения подлинности web-сервера осуществляется сравнение доменного имени загружаемого сайта банка с указанным в сертификате web-сервера.
  • Шифрование данных - для обеспечения конфиденциальности передаваемой через Интернет информации. Шифрование информации осуществляется с помощью сессионных ключей, генерируемых на этапе установления соединения между клиентом и Сервером Приложения iBank 2.
Для использования функций криптографической защиты в системе «iBank 2» встроена поддержка следующих многоплатформенных криптобиблиотек, сертифицированных ФСБ:
  • ПБЗИ «Агава-С 5.0» компании «Р-Альфа» (сертификат соответствия ФСБ РФ рег. № СФ/114-1171 от 1 августа 2008 года);
  • СКЗИ «Крипто-КОМ 3.2» компании «Сигнал-КОМ» (сертификаты соответствия рег. № СФ/114-1068 от 7 ноября 2007 года и рег. № СФ/124-1070 от 15 июля 2008 года для вариантов исполнения 1, 5, 12 и 16).
В системе «iBank 2» ведутся контрольные архивы, в которых хранятся все электронные документы с ЭЦП для разрешения конфликтных ситуаций. В системе ведется история документов - кем и когда документ был создан, отредактирован, подписан, исполнен или отвернут.
Какие меры безопасности необходимо соблюдать при работе в Internet-Банкинге?
Меры безопасности при работе с ЭЦП:
  • Пароль на доступ к секретному ключу должен быть известен только Вам как владельцу ключа;
  • Для защиты секретных ключей ЭЦП от хищения вредоносными программами рекомендуется использовать персональный аппаратный криптопровайдер (ПАК) - USB-токен или смарт-карту «iBank 2 Key»;
  • В случае отсутствия ПАК файл-хранилище ключей сохраните на отчуждаемом носителе (USB-накопитель);
  • Не допускается сохранять его в местах, где к нему может получить доступ кто-либо, кроме Вас. Отчуждаемый носитель с хранилищем ключей необходимо тщательно оберегать от несанкционированного доступа;
  • Не копируйте ЭЦП и не передавайте ее никому;
  • Не пользуйтесь Internet-Банкингом в Интернет-кафе, а так же там, где Вы не уверены в безопасности компьютеров;
  • При увольнении ответственного сотрудника, имевшего доступ к секретному ключу ЭЦП, обязательно сообщите в Банк и заблокируйте ключ ЭЦП;
  • При возникновении любых подозрений на компрометацию (копирование) секретных ключей ЭЦП или компрометацию среды исполнения (наличие в компьютере вредоносных программ) – обязательно сообщить в Банк и заблокировать ключи ЭЦП.
Меры по защите компьютера, с которого осуществляется работа в Internet-Банкинге:
  • Соблюдайте регламент ограниченного физического доступа к данному компьютеру. Должен быть утвержден список сотрудников организации, включая ответственных сотрудников и технический персонал, которым разрешен доступ к компьютерам, с которых осуществляется работа в системе «iBank 2»;
  • Используйте и оперативно обновляйте специализированное ПО для защиты информации - антивирусное ПО, персональные межсетевые экраны, средства защиты от несанкционированного доступа и пр.;
  • Используйте и оперативно обновляйте системное и прикладное ПО только из доверенных источников, гарантирующих отсутствие вредоносных программ. При этом необходимо обеспечить целостность получаемых на носителях или загружаемых из Интернета обновлений;
  • Соблюдайте правила безопасной работы в Интернете, а именно: не подключайте к компьютеру непроверенные на наличие вирусов отчуждаемые носители, не читайте подозрительных электронных писем, максимально ограничьте использование Интернет-пейджеров (ICQ и пр.) и т. п.

Много-много лет назад, работая админом на одном из градообразующих предприятий российской глубинки, мне пришлось впервые столкнуться с понятием «электронно-цифровая подпись» (далее ЭЦП).
В головах руководства, на тот момент, укоренилась мысль, что ЭЦП - это обычная подпись, отсканированная и добавляемая на все документы, которые должны быть «подписаны».

Давайте разбёрмся, что же такое ЭЦП и как она работает.

Для работы с ЭЦП нам, прежде всего, необходим цифровой сертификат и закрытый ключ.

Сначала, нам необходимо установить ЭЦП под документом.
Установка ЭЦП происходит в два шага:
1. Берём документ, который мы хотим подписать и вычисляем хэш от этого документа. (Упрощённо, хэш - это односторонняя математическая функция преобразования документа произвольной длинны, в документ фиксированной длинны).
2. Затем, этот полученный хэш шифруем нашим закрытым ключом.

Теперь документ, с прикреплённой к нему ЭЦП и нашим сертификатом, отправляем получателям.

Получив подписанный документ, нам необходимо проверить подпись - действительна она или нет.
Проверка ЭЦП происходит несколько сложнее:
1. Берём документ, подпись под которым необходимо проверить, вычисляем хэш от этого документа.
2. Берём цифровой сертификат пользователя, который подписал документ и прикреплённую к документу ЭЦП (которая является зашифрованым на закрытом ключе подписсанда хэшом оригинального документа) и расшифровываем с помощью открытого ключа.
Таким образом, у нас есть два хэша - тот, который мы вычислили сами и тот, который мы получили вместе с документом и расшифровали открытым ключом подписанта.
3. Теперь сравниываем эти хэши. Если хэши совпадают, значит подпись действительна, если хэши различаются, значит подпись неделйствительна.

В заключении определим, что нам даёт использование цифровой подписи:
1. Неизменяемость в процессе передачи или хранения - если документ был изменён, то хэш, который мы вычислим, и который был прикрёплён к документу, буду разные, следовательно, подпись будет неделйстительная, из чего можно сделать вывод, что документ был изменён;
2.

Для того, чтобы было невозможно подделать ЭЦП, закрытый ключ должен быть в единственном экземпляре и доступ к нему должен быть только у владельца. Это можно реализовать используя смарт-карты, но это уже совсем другая история.

Вслед за стремительным развитием информации ВТБ, как и многие другие банки, стал внедрять функцию под названием «дистанционное банковское обслуживание». С этой целью специалистами ВТБ был создан специальный апплет – программа, через которую клиенты и получают доступ к своим счетам. Чаще всего, как и в этом случае, для этих целей используют язык программирования Java (произносится «джава» или «ява»). Чтобы начать пользоваться программой от ВТБ, необходимо скачать программу, установить и настроить ее.

Для чего нужен Java-апплет?

Такой апплет работает, основываясь на трех китах. Их имена: Надежность, Производительность и Безопасность. Так что не удивительно, что апплеты на этой платформе используют не только финансовые организации вроде ВТБ, но и бухгалтерские отделы, научные предприятия, а также производители технической продукции для бытовых и коммерческих потребностей. Возможности платформы многогранны:

  • простой способ сформировать и настроить сетевое приложение;
  • доступность работы с базами данных;
  • детальная проработка уникальных сценариев развития событий;
  • возможность выбирать параметры фильтра на вводе и выводе;
  • доступ к интернет-службам;
  • автоматическое управление памятью;
  • полноценная работа с форумами, онлайн-магазинами, опросниками, играми и приложениями в сети;
  • одновременно выполняется несколько программ на любом из указанных языков;
  • поддержка многопоточных приложений;
  • возможные сообщения и ошибки, если он не загружен;
  • различные классы для выполнения HTTP-запросов и обработки ответов.

Описанные преимущества делают платформу Java идеальной для ВТБ апплета.

Возможные ошибки

Ниже собраны самые распространенные ошибки, с которыми сталкиваются клиенты ВТБ после установки апплета, и способы их устранения.

Апплет не запускается после обновления до Java 7 Update 65

Эта проблема чаще всего касается обладателей Windows 7, 8 и 10, с версиями Java 7.0 или 8.0. Суть проблемы сводится к тому, что апплет ВТБ перестал запускаться. Причина кроется в отсутствии строки deployment.javaws.jre.0.args= в документе с именем deployment.properties. Разработчики устранили неполадки в Java 7 Update 67 (7u67), поэтому для большинства, решение проблемы – установка последней версии ПО. Загрузить программу можно по ссылке: https://www.java.com/ru/download/ . Главная страница выглядит так:

В случае, когда обновление невозможно, существуют другие варианты. Конечным пользователям версии 7u65 стоит немного изменить параметры Java Control Panel. Сделать это можно следующим образом:

  • «Пуск» Windows => «Программы».
  • В открывшемся меню найти список программ от производителя.
  • Нажать «Configure Java» («Настроить Java»), чтобы запустился Java Control Panel.
  • После запуска перейти на вкладку с соответствующим именем.
  • Нажать «View» («Просмотр»).
  • Двойной щелчок на «Runtime parameters» («Параметры среды выполнения»). Так вы откроете режим редактирования.
  • «OK» «Apply» («Применить»).
  • Последний клик на «OK» для закрытия панели.
  • Следуя этому руководству любой может настроить свой апплет ВТБ довольно быстро.

    Временно решить проблему можно, внеся поправки в код:

  • Удаление java_arguments из тега апплета решит вопрос со стороны сервера.
  • Добавление в deployment.properties строки deployment.javaws.jre.0.args= решит вопрос со стороны компьютера.
  • Так вы заставите апплет ВТБ работать и проблема с обновлением будет решена.

    Апплет ВТБ не загружен

    Важная предыстория: из множества технологий, которыми пользовались компании, некоторые безнадежно устарели и уже не в состоянии выполнять свои функции как положено. Однако хозяевам больших предприятий очень жаль потраченных десятков/сотен тысяч долларов на разработку корпоративных приложений на основе упомянутых технологий. В связи с этим, некоторые клиенты, заходя в сервис, могут видеть ошибку с вышеуказанным названием.

    Это касается и некоторых клиентов ВТБ: при попытке зайти в систему удаленного управления счетами отображается описанная ошибка апплета. Причиной может быть отсутствие апплета или его нерабочее состояние. Однако с этим легко справиться, достаточно последовать простым указаниям ниже.

    Легче всего для начала установить апплет ВТБ с официального сайта Java. Сделать это стоит даже тогда, когда программное обеспечение у вас уже есть, но не включено: будет лучше, если на вашем компьютере будет установлена самая актуальная версия программы. Итак, следуйте указаниям:

  • Зайдите на официальную страницу компании в интернете (ссылка на сервис есть чуть выше в этой статье).
  • После этого ресурс самостоятельно определяет параметры вашей ОС и предлагает вам ссылку на подходящий вариант ПО.
  • Нажмите «Загрузить Java бесплатно».
  • После окончания процесса загрузки запустите файл и установите его, следуя указаниям.
  • Перезапустите браузер.
  • Важная информация: начиная с 42-й версии Google Chrome официально не поддерживает апплеты на базе Java, в том числе апплет ВТБ.


    Однако он доступен в любом другом браузере, к примеру, Mozilla Firefox. Включить апплет там можно следующим образом:

  • Запустите браузер (если он не установлен, скачайте его с сайта https://www.mozilla.org/ru/firefox/new/ и установите согласно указаниям).
  • В меню приложения нажмите «Дополнения» =› «Плагины».
  • Переключите «Модуль платформы Java» в положение «Всегда включать» (ничего не меняйте, если он уже включен).
  • Перезагрузите браузер.
  • После этих нехитрых манипуляций можете свободно заходить на сервис ВТБ: апплет должен работать без перебоев.

    Установка апплета ВТБ

    Чтобы установить и настроить апплет ВТБ скачайте его по ссылке http://www.java.com⁄ru⁄ . Апплет подойдет под функционалы таких браузеров как FireFox, Opera, Internet Explorer (версия которого должна постоянно обновляться).

    Апплет для работы с ВТБ устанавливается в две стадии:

    • установка и настройка платформы SE Runtime Environment;
    • установка самого апплета.

    Если для доступа вы планируете использовать персональный компьютер, первый шаг вам не нужен. Порядок установки состоит из пяти пунктов:

  • «Загрузить».
  • «Согласиться и начать загрузку» (файл для Windows, расширение.exe).
  • «Сохранить» =› запуск двойным кликом левой кнопкой мышки.
  • «Install» («Установить»).
  • «Close» после завершения установки.
  • Затем скрипт нужно настроить:

    «Пуск» =› контрольная панель =› убрать галочки с протоколов TLS 1.1, TLS 1.2 и «Use SSL 2.0 compatible ClientHello format». Теперь вы имеете свободный доступ к апплету ВТБ.

    Настройка браузеров

    Окно-предупреждение с сообщением «Внимание. Java апплет не загружен» может возникать по причине браузеров. Чтобы настроить их на взаимодействие с апплетом ВТБ, следуйте инструкциям в таблице ниже.

    Браузер Инструктаж
    Firefox 1. Нажмите на иконку.
    2. В выпадающем меню выберите статус «Разрешить и запомнить».
    3. Нажмите «ОК».
    4. Зайдите в настройки браузера.
    5. Выберите пункт «Дополнения», подпункт «Плагины».
    6. Проставьте по всем подпунктам Java статус «Включать по запросу».
    Opera 1. Откройте настройки браузера.
    2. В пункте «Плагины» (рекомендуется)» выберите «Запускать все содержимое плагинов».
    Safari 1. На странице регистрации в системе ВТБ выберите меню «Safari» => «Настройки» => «Безопасность» => «Настроить веб-сайт».
    2. В левом списке диалога выберите «Java». В правом списке для сайта ВТБ задайте режим «Вкл.».
    3. Нажмите и удерживайте ALT переводя курсор мыши ВКЛ. Затем нажмите кнопку мыши. Появиться выпадающее меню, в котором выбрать «Запустить в безопасном режиме».
    4. Нажмите «Готово» и перезагрузите браузер.
    Internet Explorer 1. В настройках браузера выберите «Сервис» => «Свойства обозревателя» => «Дополнительно». Снимите отметку SSL 2.0 и отключите использование протоколов TLS 1.1 и 1.2.
    2. В настройках браузера выберите «Настроить надстройки».
    3. В появившемся окне выберите «Запуск без получения разрешения».
    4. В списке надстроек найдите «Java Plug-in ». Состояние данной надстройки должно быть «Включено».

    Итак, апплет от ВТБ – штука очень полезная, поэтому важно знать, как правильно установить программное обеспечение для него. Для тех, кто любит наглядные демонстрации, посмотрите видео.

    Проблема в следующем.

    На странице размещен некоторый апплет, а также интерфейс для управления им, написанный на HTML + JavaScript. Требуется определить из JavaScript, что апплет загружен и готов к работе. Решение должно быть ПРЕДЕЛЬНО надежным - кросс-броузерным, нормально реагирующим на медленный Internet и т.п.

    Комментирую. Пока апплет не загрузился, обращения из JavaScript к его public-методам и/или полям чреваты появлением весьма некрасивого сообщения примерно такого содержания: "Данный метод отсутствует". А апплет порой загружается намного дольше, чем сама страница. Более того, некоторые вещи иногда имеет смысл сделать автоматически (из JavaScript), как только апплет загрузится - скажем, подать ему некоторую команду.

    Здесь проблема не столько в том, что нет способа проверить, что апплет уже загрузился, сколько в изобилии таких способов. Например: onload у апплета, onload у страницы, обращение к методу или полю апплета, "активное" информирование страницы о загруженности апплета специальным Java-кодом изнутри самого апплета, и т.д. А уверенности, что эти способы будут работать:
    на всех мыслимых броузерах,
    при всех настройках Security в броузерах,
    в сочетании со всеми мыслимыми платформами,
    со всеми JRE,
    у меня нет. И получить такую уверенность почти нереально: слишком много комбинаций.

    Хуже того, здесь, кажется, очень легко "перемудрить". Например, я вчера долго "боролся" с ошибкой - на чужом компьютере (XP+ MSIE +Java2) JavaScript ошибочно полагал, что апплет не загружен, хотя у меня на компьютере все было в порядке. Подозреваю, дело в том, что я тогда использовал для проверки доступности обращение к некой public-переменной апплета (не методу!). Все броузеры на моем компьютере (тоже XP) при обращении к такой переменной недозагруженного апплета возвращают null, а как только апплет загрузится - возвращают ее значение. (В отличие от этого, обращение к методу недозагруженного апплета выдает ошибку.) Боюсь, что на чужом компьютере броузер отказался считывать public-переменную. Доступ к переменным - вообще неочевидная вещь, работающая по-разному из-под разных броузеров и JRE. Надежен только вызов методов, но - лишь когда апплет загружен.

    Пока что я написал следующую пару функций:

    Function showMyErrorMessage(msg,url,line) { if (window.errorMessage != null) alert(window.errorMessage); window.onerror = window.onerrorSave; return true; } function getApp(name,notShowMessage) { window.errorMessage = null; var a = "Error while accessing applet information for the \"" + name + "\" Java applet."; var b = "Maybe, this applet is not correctly loaded.Please try to reload this page."; if (notShowMessage==null || !notShowMessage) { window.errorMessage = a + b; } window.onerrorSave = window.onerror; window.onerror = showMyErrorMessage; var app = eval("document."+name); var appInfo = app == null? null: app.getAppletInfo(); window.onerror = onerrorSave; if (app == null || appInfo == null) { if (window.errorMessage != null) { if (app == null) alert("Cannot access \"" + name + "\" Java applet." + b); else alert("Cannot access applet information for the \"" + name + "\" Java applet." + b); } return null; } return app; }

    Используется достаточно древняя (по идее, кросс-броузерная) техника подавления сообщения об ошибках через window.onerror. Все работает под Mozilla 1.4, MSIE 6.0 и даже под древним Netscape 4.5, но, увы, не под (куда более популярной) Opera 7.23: последняя выдает сообщение об ошибке JavaScript. Обращение к некоторому методу апплета необходимо - ибо почти все броузеры (кроме Netscape) успешно возвращают ненулевой объект document.ИмяАпплета, как только в странице прочитан ТЭГ

    Из прочих методов проверки всевозможные onload у меня вызывают недоверие - в свое время (на старых броузерах) мне часто приходилось отлаживать ситуации, когда onload без видимых причин отказывался срабатывать, например при нажатии Refresh для страницы или чего-нибудь подобного. Самым надежным кажется "активное" информирование страницы - когда Java-код апплета обращается к JavaScript. Но тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким.

    Может быть, кто-нибудь подскажет надежный, желательно опубликованный и широко известный способ проверки загруженности апплета?

    Для Opera, кстати, нормально работает конструкция try...catch. Но только эта же конструкция, если не ошибаюсь, приведет к ошибке синтаксиса в ранних MSIE , которые до сих пор, кажется, превосходят Opera по популярности. Как бы надежно удостовериться, что можно использовать try...catch? Условная компиляция MSIE -

    /*@cc_on @*/ /*@if (@_jscript_version >= 5) (испольщуем здесь try..catch и другие хорошие вещи) @*/ /*@end @*/

    Как водится, в Opera игнорируется:(

    Надо полагать, имеется в виду пакет netscape.javascript.* ?

    Это решение непереносимо - если не ошибаюсь, в MSIE со встроенным JRE 1.1.4 эта техника начала работать только где-то с версии 5.5 или даже выше. Я этим пакетом никогда не пользовался - по причине непереносимости; может быть, я не прав? Я писал про это выше: "тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким".

    Апплеты я обычно компилирую в JDK 1.1.6 (самая ранняя версия, имеющаяся в архивах Sun); там этого пакета вовсе нет.

    А если городить огород, учитывающий, что пакета netscape.javascript.* может не быть, то получится ничуть не лучше, чем, к примеру, отдельно проверять оперу и использовать для нее try...catch.

    Давно дело было:) Варианты:

  • Апплет грузится во фрейм, в методе init() грузит в другой фрейм документ с JS , вызывающем его методы, типа:
  • public void init() {
    //....
    getAppletContext().showDocument("js_page.htm", "another_frame");
    }
    Пример 1998 года - http://www.copris.com/optocontrol/home.htm - в IE5.5 и Мозилла 1.6 работает (делалось во времена NN3 и IE3) :)

  • Ждать загрузки в цикле:
  • function checkApplet() {
    if (document && document["appletName"] && document["appletName"].isActive())
    //Do something
    else
    setTimeout(checkApplet, 100);
    }

    isActive() - это метод класса java.applet.Applet.

    Алексей Рюмин aka Dwarf[досье]
    Спасибо большое. Но...

  • Насчет showDocument я уже думал: "Но тут вроде бы единственное кросс-броузерное решение - showDocument в отдельное окно (или фрейм), что делает решение крайне громоздким."
  • У меня, увы, страница по природе не фреймовая, и вводить туда фреймы только ради апплета очень неудобно. А вариант с IFRAME не кросс-броузерный - это будет ничем не лучше моего решения с window.onerror.

    Собственно, уже сейчас мои апплеты с 3D-структурами присутствуют на нескольких наших страницах, а в будущем таких страниц будет гораздо больше (всевозможные галереи примеров структур и т.п.). Собственно, на нашем сайте апплеты будут занимать примерно то же место, что и картинки (): иллюстрация к тексту, которую можно заодно "покрутить" мышкой. И возле каждого такого апплета, возможно, будут некоторые простейшие управляющие JavaScript-кнопки: ну хотя бы для разворота повернутой трехмерной картинки в исходную позицию.

    Отсюда - необходимость универсальной функции вроде моей getApp, которую можно положить в подключаемый js-файл и ради которой не надо перекраивать сайты на фреймы.

  • А вот это - извините, неверно.
  • Пишем простой тест.

    ... alert(document.XXXX+""+document.XXXX.isActive());

    После чего грузим эту страницу через любой не-мгновенный Internet, почистив предварительно кэш MSIE . Как и следовало ожидать, пока апплет реально не загрузился (серый квадрат), вызов isActive() порождает вышеупомянутое сообщение об ошибке. В то же время, обращение document.XXXX срабатывает нормально, в чем можно убедиться, изменив код на

    alert(document.XXXX);

    Раз объект страницы XXXX был уже отрендерен, броузер разрешает свободно обращаться к этому объекту.

    Правда, тут выплывает один интересный нюанс. При превращении объекта-апплета в строку получаются разные результаты, в зависимости от того, загрузился апплет или еще нет. Именно, если апплет загружен, то преобразование DHTML -объекта в строку дает результат вызова "toString()" у апплета. По идее, написать бы в методе toString некое ключевое слово и проверять, присутствует ли это слово в строке document.имяапплета+"".

    Было бы просто замечательно, очень просто и красиво, и даже в Opera работает. Но - УВЫ - на этот раз подкачала Mozilla. Показывает, зараза, дурацкое независимо от факта загрузки. Так что - не пойдет...

    Пока что - подскажите, как надежно "обнаружить", что мы имеем дело с современной Opera - точнее, что работают try...catch? Opera, кажется, имеет обыкновение прикидываться другими броузерами. Если выяснить, что try..catch работают, можно бы вызвать через eval версию кода с этими операторами - она работает и под Opera.

    Еще в эту же тему. Предлагаю разделить возможные решения проблемы на две группы.

  • Процедура может, в случае ошибки, принять нормально загруженный апплет за незагруженный. К этой группе относятся все решения, основанные на событиях onload и "активных" действиях апплета по завершению своей загрузки (типа открытия страницы в отдельном фрейме). Если вдруг onload не произойдет, или безопасность броузера запретит апплету открывать окно, или произойдет что-то еще непредвиденное - мы так никогда и не узнаем в JavaScript, что апплет загружен. Цена такой ошибки весьма высока: пользователь не сможет работать, причем, вероятно, проблема не решится даже перезагрузкой броузера.
  • Процедура может, в случае ошибки, принять незагруженный апплет за нормально загруженный, но если уж апплет загружен, то все гарантированно заработает. К этой группе относится моя функция getApp. У нормально загруженного апплета метод getAppletInfo просто обязан сработать без проблем (раз уж в моем апплете он есть); если даже он не работает, вряд ли апплетом вообще удастся воспользоваться из JavaScript. Цена ошибки в данном случае значительно ниже. Просто иногда в случае проблем (например, проблем с Internet) пользователь будет вместо "цивилизованного" сообщения получать "дикое" сообщение об ошибке в JavaScript - либо вообще ничего не произойдет, если визуализация таких сообщений отключена.
  • Если можно, прошу ограничиться решениями второго типа.

    Что-то вы не понимаете, уважаемые.

    Нельзя ЯВНО вызывать toString()! У DHTML -объекта "апплет" НЕТ собственного метода toString, он появляется, только когда загрузится Java-класс. Соответственно, попытка вывести
    alert(document.PackingSpheresForDesign.toString());
    при незагруженном апплете приводит к ошибке JavaScript, в моем MSIE это "Unspecified error".

    Неявно вызвать toString, разумеется, можно всегда - преобразованием DHTML-объекта в строку. И здесь, как я уже говорил, Mozilla ведет себя некрасиво: никогда не вызывает toString() апплета, даже когда апплет полностью загружен. Да и не документировано нигде, что броузер обязан использовать toString Java-класса. Решение, опирающееся на проверку строчного представления DHTML-объекта Applet, очевидным образом попадает в первую категорию: если некий броузер не захочет вызывать метод toString, то на таком броузере апплет ВСЕГДА будет считаться незагруженным, и пользователь вообще не сможет работать.

    Как все-таки удостовериться в JavaScript, что броузер достаточно хорош, чтобы понять конструкцию try...catch? Я пока склоняюсь пойти по этому пути.

    Даниэль Алиевский[досье]
    Не, ну понятно, что в MSIE вызов toString() ошибка, но браузер-то в javascript легко определить. Если браузер mozilla, вызывайте toString(), если нет, просто applet.

    Что касается вызова метода toString в браузере, то насколько я понимаю у любого объекта в javascript должен быть метод toString и если браузер не вызывает этот метод у апплета, тогда имеются сомнения в том, что в этом браузере вообще возможно вызывать методы апплета - безотносительно к поведению в данном случае mozilla.

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

    Ну да. Я просто не додумал. Действительно, надо просто в моей функции обратиться не к методу getAppletInfo, а к методу toString. В MSIE , правда, как и раньше, будет ошибка, но она благополучно ловится через window.onerror. Зато в Opera - и во всех броузерах, которые разрешают вызывать toString у недозагруженного апплета - никаких ошибок вообще не будет, просто toString вернет либо строку с кодовым словом, если апплет загружен, либо нечто умолчательное. При этом, вроде бы, не должно быть настолько странного броузера, чтобы у нормально загруженного апплета JavaScript-вызов toString не обратился бы к одноименному методу апплета.

    Кажется, найдено неплохое решение. Спасибо за помощь. Дотестирую его под всякими кривыми броузерами вроде Netscape 3 - и предложу для FAQ .

    Александр Самойлов[досье] "Что касается вызова метода toString в браузере, то насколько я понимаю у любого объекта в javascript должен быть метод toString и если браузер не вызывает этот метод у апплета, тогда имеются сомнения в том, что в этом браузере вообще возможно вызывать методы апплета..." - тут я не совсем вас понял, ведь как раз самый популярный MSIE считает, что никакого toString у объекта Applet нет, если апплет не загружен (к примеру, если указан неверный путь к классу). Я вообще не видел внятных указаний в документации, что КАЖДЫЙ JavaScript объект обязан обладать таким методом. Если таковые есть - ткните пальцем, если не трудно.

    цитата из справки для JScript

    The Object object is contained in all other JScript objects; all of its methods and properties are available in all other objects. The methods can be redefined in user-defined objects, and are called by JScript at appropriate times. The toString method is an example of a frequently redefined Object method.

    из нее, конечно нельзя однозначно сделать вывода, о том, что и для всех других интерпретаторов javascript подобное выполняется.

    что касается MSIE , то он не считает, что у апплета нет метода toString, он считает, что произошла неопределенная ошибка во время выполнения этого метода.

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

    Черт! Вы будете смеяться, но MSIE + Java 2 ВООБЩЕ не желает вызывать toString() у НОРМАЛЬНО загруженного апплета. Устойчиво выдает Unspecified error. А при умолчательном преобразовании в строку, соответственно, мой перекрытый toString попросту игнорируется.

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

    Что б его. Вчера забыл проверить на этой ситуации (проверял под Java 1.1.4). Сегодня полчаса убил на таинственный глюк страницы. Хуже того, в качестве "побочного эффекта" MSIE принялся глухо зависать при открытии страницы (видимо, из-за разных моих вспомогательных скриптов). Ужасно.

    Вернулся к старой методике с вызовом getAppletInfo().

    Так что, господа, жду дальнейших предложений. В частности - как отловить Оперу (чтобы бороться с ней отдельно).

    Владимир Палант[досье] Спасибо. Можно первоисточнк, если не затруднит? (Догадываюсь, что где-то на сайте opera.)

    Мне бы хотелось не столько обнаружить Оперу, сколько проверить версию JavaScript, что он поддерживает try...catch - совместимым с Opera способом. Микрософтоский вариант такой проверки - условная компиляция - естественно, под Opera не работает.

    На худой конец достаточно и проверки Оперы: в этом случае можно (надеюсь:-)) смело вызывать toString у апплета.

    Даниэль Алиевский[досье]
    а почему бы не использовать версию яваскрипт для отлова поддержки try catch


    var try_catch = false


    try_catch=true


    if (try_catch) {}

    правда в опере не проверял

    Даниэль Алиевский[досье]
    Нет, на opera.com рекомендуют проверять по User-Agent (http://www.opera.com/support/search/supsearch.dml?index=570) — ИМХО извращение. Проверять по window.opera надежней — никакой другой браузер это свойство поддерживать не станет.

    Opera поддерживает try/catch как минимум с версии 4.0, так что можете считать, что поддерживает всегда.

    Есть еще одна идея - пока не проверил. Обращение к свойствам DHTML -объекта (property), насколько я знаю, никогда не порождает исключений. Если такого свойства нет, просто возвращается null. Хорошо бы снабдить апплет неким свойством (к примеру, boolean iAmLoaded=true), и проверять, установлено ли оно. Насколько я понимаю, в случае Java 2 это не так просто - недостаточно завести public-поле, нужно объявлять пару методов get/set, как это полагается в JavaBeans (пока еще не изучил соответствующую документацию).

    Как считаете, насколько это надежная и кросс-броузерная техника?

    Не понял я, при чем тут JavaBeans, по-моему доступ к свойствам осуществляется без всяких get/set. Но в любом случае — проверять можно наличие метода, который для DHTML тоже свойство: if (typeof(applet.notifyAll) != "undefined") . А вот кроссбраузерность вам уже придётся самим проверить...

    Владимир Палант[досье]
    Намек на JavaBeans Introspection есть вот здесь: http://java.sun.com/j2se/1.4.2......loper_guide/compatibility.html
    Как я понял, проблема имела временный характер: у меня на компьютере во всех броузерах и JRE доступ к public-полю чудесно работает. Причем совершенно нетрудно добавить в апплет "настоящее" public-поле типа boolean, тогда не потребуется прибегать к более экзотическим приемам типа typeof(applet.notifyAll). (Кстати, упомянутый typeof не работает у меня в MSIE ни с 1.1.4, ни с Java 2.)

    Проблема в том, что раньше я применял как раз такую технику - проверку существования public-поля - и однажды столкнулся с проблемой, причем, очевидно, того самого неприятного первого типа: поле не обнаруживалось, апплет детектировался как незагруженный и начисто отказывался работать. Это произошло на 2 "чужих" компьютерах с вполне нормальной конфигурацией (MSIE + Java 2, что-то типа JRE 1.4.2_01), хотя на моем компьютере все работало. Естественно, я перестал пользоваться проверкой поля - от греха подальше.

    Но, может быть, я просто сделал все недостаточно грамотно? Скажем, не объявил методов get/set "по-JavaBean-овски"? Если я не увижу в документации четкого описания этой проблемы с объяснением, почему на некоторых броузерах доступ к обычному public-полю не работает, и указанием, как делать это корректно, я, конечно, не рискну применять проверку поля - слишком высока цена ошибки.

    Перехват сообщения об ошибке, как выяснилось, работает даже под Netscape 3. Но - немного не так, как нужно: этот древний броузер вызывает процедуру показа сообщения асинхронно с общим потоком JavaScript-кода, что приводит к тонким ошибкам. Пока не доотладил. Естественно, совместимость с Netscape 3 никому не нужна, но настораживает, что методика (обращение к методу апплета, или toString для Оперы, с перехватом ошибки) требует отладки "по новой" чуть ли не для каждого класса броузеров:(Видимо, все-таки техника кривая. А какая техника "прямая" - пока непонятно.

    С Netscape 3.0 песня оказалась совсем в другом. Этот броузер вообще не сильно дружил с обращениями типа document.xxxx, где xxxx - имя апплета. Даже для реально загруженного апплета он имел обыкновение при таком обращении выдавать целую пачку ошибок:
    Can"t reflect applet "(null)": not loaded yet
    (Самое смешное, что это происходит и при проверках типа "if (document.getElementById != null)...".) Борьба с этим очень проста. Достаточно каждое обращение к любому document.xxxx обрамлять кодом наподобие:
    var onerrorSaveLocal = window.onerror;
    window.onerror = null; // - avoiding an incorrect exception in Netscape Navigator 3
    var v = document.xxxx;
    window.onerror = onerrorSaveLocal;

    При этом, как и в Netscape 4, и во встроенном "броузере" из JavaBuilder, при недозагруженном апплете document.имяАпплета просто возврашает null.

    В общем, я потратил некоторое время и отладил свою процедуру под всеми броузерами, до которых смог "дотянуться" - включая предыдущие версии MSIE . Вот что получилось:

    Function showMyErrorMessage(msg,url,line) { if (window.errorMessageA != null) alert(window.errorMessageA+"(System error message: "+msg+")"+window.errorMessageB); window.onerror = window.onerrorSave; return true; } function getApp(name,notShowMessage) { // For compatibility with this function, all Java applets must override "toString()" method // and return a string containing "Successfully loaded Java applet" substring as it"s result. window.errorMessageA = window.errorMessageB = null; if (notShowMessage==null || !notShowMessage) { window.errorMessageA = "Error while accessing applet information for the \"" + name + "\" Java applet."; window.errorMessageB = "Maybe, this applet is not correctly loaded." + "Please wait until it will be completely loaded, " + "or please try to reload this page."; } var opera = window.opera != null; if (window.onerrorSave == null) window.onerrorSave = window.onerror; var app = null; var appInfo = null; var onerrorSaveLocal = window.onerror; window.onerror = null; // - avoiding an incorrect exception in Netscape Navigator 3 // ("Can"t reflect applet "(null)": not loaded yet") // sometimes appeared while accessing correctly loaded applets app = eval("document."+name); window.onerror = onerrorSaveLocal; var systemErrorMessage = null; /*@cc_on@*/ /*@if (@_jscript_version >= 5) try { // some MSIE (for example, MSIE 5.0) don"t understand onerror-based catching @else @*/ window.onerror = showMyErrorMessage; // catching exceptions while calling non-existing method /*@end @*/ appInfo = app == null? null: // a case of Netscape browser opera? app.toString(): // MSIE + Java2 cannot call applet"s toString app.getAppletInfo(); // MSIE and Mozilla (but not Opera) will catch an exception here /*@if (@_jscript_version >= 5) } catch(e) { systemErrorMessage = e==null || e.description==null? "unknown error": e.description+""; } @else @*/ window.onerror = window.onerrorSave; window.onerrorSave = null; /*@end @*/ if (app == null || systemErrorMessage != null || appInfo == null || (opera && (appInfo+"").indexOf("Successfully loaded Java applet")==-1)) { if (window.errorMessageA != null) { if (app == null) alert("Cannot find \"" + name + "\" Java applet." + window.errorMessageB); else if (systemErrorMessage != null) alert("An exception occured while accessing applet information for the \"" + name + "\" Java applet. (System exception information: " + systemErrorMessage + ")" + window.errorMessageB); else if (appInfo == null) alert("Cannot access applet information for the \"" + name + "\" Java applet." + window.errorMessageB); else alert("Cannot call \"" + name + "\" Java applet." + window.errorMessageB); } return null; } return app; }

    Как водится, MSIE доставили максимум проблем. Из относящихся к делу: MSIE 5.0, как выяснилось, отказывается блокировать сообщения об ошибках через window.onerror. Пришлось специально для "капризного" MSIE написать ветку c условной компиляцией и try..catch. На первый взгляд, try..catch - самое надежное решение, так что вполне логично применять его в самом популярном семействе броузеров. При этом в MSIE 4 (где нет try..catch), а также в Mozilla продолжает работать блокировка ошибки через window.onerror. В Opera используется вызов toString и проверка "кодового слова" внутри результата. Еще попутно выяснилось, что в MSIE 4 лучше не пытаться обращаться к апплету из onbeforeunload - могут быть ошибки.

    Я дошел даже до MSIE 3.0:-) Там, кажется, моя процедура не сработала, хотя, возможно, дело тут в том, что мои классы скомпилированы несовместимым с Java 1.0.2 способом, а поддерживать подобную совместимость у меня нет ни малейшего желания.

    Теперь у меня есть огромная просьба ко всем присутствующим. Пожалуйста, протестируйте эту процедуру с каким-нибудь апплетом на всех своих броузерах. Например, работает ли это в Unix Mozilla/Opera, или на Macintosh? Вo всех ли вариантах Windows+MSIE? Что насчет более ранних версий Opera?

    Я протестировал в следующих броузерах:
    Windows XP: MSIE 6.0 c Java 1.4.2 и Java 1.1.4, Mozilla 1.4, Opera 7.23, Netscape 4.5, Netscape Navigator 3.0;
    Windows NT 4.0: MSIE 5.0 с Java 1.4 и Java 1.1.4, Netscape 4.5, Netscape Navigator 3.0;
    Windows-95: MSIE 3.0 (Java 1.0.2), Netscape 4.5.

    Тестировать проще всего, указывая на странице заведомо неправильный путь к апплету (и, для сравнения, правильный) - по-моему, это достаточно похоже на ситуацию, когда апплет не догрузился. Если все нормально, то, по идее, процедура заслуживает помещения в FAQ .

    На этой странице кнопка "Get JVM information" (использующая вышеописанную функцию) должна срабатывать, как только апплет загрузится, либо "ругаться", пока он не загружен.

    (Кстати, в MSIE 3.0 эта техника таки не работает - в моей версии 3.02 JavaScript вообще отказывается что-либо делать, если апплет не загружен. И бог с ним.)

    Привет всем! Сегодня я попробую написать масштабную статью про Java. Ведь многие приложения сейчас ей используют.

    А во время работы возникают порой ошибки.

    Java — что такое и для чего нужна эта программа

    Java — это язык программирования или технология, на которой пишут онлайн-приложения. Т.е. чаты на сайтах, игры, загрузка файлов (в том числе фото, видео) и многие другие вещи.

    Преимущество данной технологии:

  • Независимость кода, операционной системы и устройств т.е. это позволяет запускать приложения на любом устройстве, независимо от операционки;
  • И безопасность (по этому скорее всего во многих банках используется при подключении), ведь если операция будет превышать полномочия, произойдет немедленное прерывание.
  • А из недостатков скорость выполнения, хотя и были усовершенствования.

    Возможно ещё есть, но это основные из официальных источников.

    А вот какая история:

    Как обновить Джаву до последней версии (или установить)

    Для того чтобы обновить java (или установить) необходимо перейти на официальный сайт приложения . И нажать загрузить java.

    И ещё… В браузерах, которые разработаны на движке хромиум, java может не работать. Если версия старая, то можно попробовать в адресной строке введя chrome://flags/#enable-npapi далее пункт «Включить NPAPI».

    Но скорее всего, придется скачивать старую версию браузера, искать дополнения или же использовать Intenet Explorer.

    Установка простая, просто нажимаем инстал.

    Обновить так же можно через панель управления:

    А в приложении вкладка Update.

    Кстати вот инструкция, по включению в браузерах.

    Как проверить версию Java

    Для проверки версии, так же можно зайти в панель управления, выбрать java.

    Кнопка About.

    В открывшемся окне видим версию.

    Как удалить Джаву

    Удаляется Java обычным способом, через средство удаления программ, однако если вы не смогли удалить, то воспользуйтесь утилитой .

    Вот так выглядит удаление через JavaUninstallTool.

    Ошибки возникающие при работе Java

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

    Java апплет не загружен

    Для начала, выполните обычные действия, убедитесь что установлена необходимая версия java, не блокирует и фаервол. Перезагрузка компьютера и роутера. Далее, если ничего не помогло, идем в панель управления, выбираем java.

    Если вы используете прокси, то нужно в General — Network Settings — Use proxy server прописывать прокси.

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

    Ошибка 1603: Обновление Java не завершено

    В этой ситуации удалите java с помощью приложения или можно попробовать вручную через панель управления. Далее устанавливаете заново.

    Java не устанавливается
    • Тут так же попробуйте удалить если есть старая версия и заново установить. При установке пробуйте устанавливать от имени администратора.
    • Убедитесь что у вас есть полный доступ до всех папок.
    • Скачайте оффлайн установщик и попробуйте установить его.
    • Если ничего не помогает, убедитесь что ничего не препятствует установке, например: антивирус, брандмауэр.
    • Для работы всех приложений необходимы NET Framework и Microsoft Visual C++, попробуйте их обновить.
    Не является внутренней или внешней командой

    В этой ошибке копируем путь до программы, у меня это: C:\Program Files (x86)\Java\jre1.8.0_144\bin

    Ищем PATH и нажимаем редактировать.

    Тут теперь аккуратнее!

    Например вот мой кусок кода: C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;

    Т.е. каждый параметр должен быть отделен точкой с запятой. Если вы не уверены в своих силах, скопируйте на всякий случай эту строку куда-нибудь.

    Итак, что мы делаем:

  • Идем в конец строки
  • Если нет точки с запятой ставим, если есть пишем наш путь C:\Program Files (x86)\Java\jre1.8.0_144\bin (тут ваш путь должен быть) и в конце ставить точку с запятой.
  • Так же можете попробовать вот такой путь: C:\ProgramData\Oracle\Java\javapath;