Определите, установили ли клиентскому браузеру Java и может запустить апплеты

ConditionalAttribute

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

Тот факт, что вызов метода опущен, также означает, что его параметры не оцениваются. Это очень удобно, и это то, что позволяет вам вызывать дорогостоящие функции проверки в Debug.Assert () и не беспокоиться о том, что они замедляют сборку релиза.

6
задан THelper 3 May 2012 в 11:24
поделиться

3 ответа

Сделайте в своем апплете метод

public boolean isRunning() { return true; }

Теперь создайте апплет:

<applet src=".../yourapplet.jar" id="someId">

А теперь оберните этот код какой-нибудь вспомогательной функцией

try {
  var x = document.getElementById('someId').isRunning()
  return x;
} catch(e) {
  return false;
}

Почему это работает? Если апплет запустится, он вернет true. Если апплет не запускается или Java не поддерживается, вы получите исключение и получите false.

10
ответ дан 9 December 2019 в 22:38
поделиться

Вы также можете попробовать использовать тег объекта.

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

Это образец тега объекта, взятый из приложения, над которым я работаю, сложности JRE потребовали от нас запустите 1.4.2_03 для совместимости с другими приложениями.

 <object classid="clsid:CAFEEFAC-0014-0002-0003-ABCDEFFEDCBA" id="MyApplet" 
 name="MyApplet" width="4" height="4" 
 codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_2_03-windows-i586.cab#Version=1,4,2,03">

Classid указывает версию Java, которую вы хотите загрузить, вы можете установить ее для определенной JRE, определенного семейства, например 1.4.X или любой другой последней версии.

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

Обратите внимание, что если на клиенте установлена ​​версия 1.5 или выше, вы не можете ссылаться на более старую JRE из-за ограничений безопасности. Вы можете переопределить это с помощью параметра реестра в Windows, но я бы не рекомендовал это. т.е. у пользователя есть 1.6.0.10, вы можете ссылаться на 1.6.0.1, но не можете перейти ни к чему в 1.5.X Хотя мне кажется, я помню, как после 1.6.0.11 всплывает диалоговое окно безопасности, в котором, как и раньше, запрос по умолчанию отклоняется.

1
ответ дан 9 December 2019 в 22:38
поделиться

Существует также коммерческий продукт под названием BrowserHawk.

http://www.cyscape.com/products/bhawk/workshop/detectjava.aspx?bhcp=1

0
ответ дан 9 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: