Определить версию Java с помощью JavaScript

Есть ли надежный способ определить, какая версия Java установлена ​​на клиентском компьютере, с помощью JavaScript?

Ознакомьтесь с решением здесь. Работает как шарм (по крайней мере, на локальной машине, но я не тестировал его в разных средах).

user397112 20.07.2010 21:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
15
1
35 170
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Посмотрите код в Набор инструментов для развертывания Java.

Если кто-то снова столкнется с этим, обратите внимание, что у инструментария есть серьезный недостаток: он возвращает самую высокую версию Java, установленную на машине, а не самую высокую версию, которая действительно запускается (в IE, во всяком случае). В частности, если у вас установлены и Sun JRE, и MSJVM, инструментарий сообщит о версии Sun JRE, даже если она отключена, и браузер фактически будет запускать MSJVM. Ссылка Адама Беллера ниже кажется более надежной, хотя и менее «чистой», потому что для нее требуется запуск реального апплета.

Dan 20.11.2009 01:42

Обновление: эта ссылка теперь не работает. Похоже, ссылку Адама Беллера нужно использовать.

Ryan Kinal 03.04.2012 00:02

Более того, этот метод заставляет панель предупреждений безопасности MSIE gold появляться под MSIE7 с Sun JDK до 1.6.0_2 (со средне-высокими настройками безопасности). См. pinlady.net/PluginDetect для версии, которая не вызывает предупреждений безопасности (и поддерживается).

Julien Kronegg 06.09.2012 17:04

Поиск в Google для

detect "java version" using javascript

дает несколько результатов, Вот этот похоже может быть полезным. По сути, он пытается загрузить апплет Java, а затем JavaScript запрашивает апплет.

По иронии судьбы, эта страница теперь является первым результатом поиска в Google для detect "java version" using javascript.

kingjeffrey 20.04.2010 20:31

Вы можете использовать библиотеку PluginDetect отсюда: http://www.pinlady.net/PluginDetect/

Если вы используете Google Analytics, эта почта может оказаться полезным (см. ветка форума для более подробной информации).

Согласно тому факту, что мы находим эту страницу с помощью Google, просто чтобы помочь следующим ребятам найти это.

Установлена ​​ли Java?

navigator.javaEnabled()

http://www.w3schools.com/jsref/met_nav_javaenabled.asp

Какая версия Java установлена?

<script src = "http://www.java.com/js/deployJava.js"></script>
<script>
var versions = deployJava.getJREs();
</script>

http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit

Это лучший способ найти версию Java с JavaScript, но используйте его осторожно, потому что определение его версии действительно зависит от ОС / браузера, а в старой версии браузера или в последнем браузере со старой установленной Java он не будет работать как ожидал. Потратьте время на проведение реальных тестов, прежде чем использовать его в производственной среде.

Это не дает никакой информации о версии (о которой идет речь).

Felix Kling 06.08.2011 14:19

Вы правы, я не ответил, где я думал, что я был. Исправил мой ответ.

sarlak 17.08.2011 11:11

Это просто дубликат Предыдущий ответ Rich Apodaca, и комментарий Дэна к нему применим.

T.J. Crowder 17.02.2012 12:55

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

sarlak 24.05.2012 18:05

@ T.J.Crowder Первые 0,02% пользователей изучает философию Stack Overflow о том, как сделать Интернет лучше. Это то, что вы не видите каждый день.

Patrick McElhaney 14.11.2012 18:52

@PatrickMcElhaney: Правильный способ улучшить чей-то ответ - это улучшить чей-то ответ. (И ответ, каким он был во время этого комментария, не был ответом, которым он является сейчас.)

T.J. Crowder 14.11.2012 18:55

@ T.J.Crowder Я не уверен, что в то время у сарлака были какие-либо варианты, кроме публикации нового ответа. Он не мог опубликовать комментарий и, вероятно, не мог предложить правку.

Patrick McElhaney 14.11.2012 19:30

@PatrickMcElhaney: Верно. И есть причина для этих ограничений для новых пользователей. Но я не собираюсь затягивать обсуждение. :-) Лучший,

T.J. Crowder 14.11.2012 19:54

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

Christopher Bruce 12.02.2014 19:45

Логика обнаружения не работает в IE32 на Windows7-64. Он не смог обнаружить ранее установленную версию java.

Что ж, после дальнейшего чтения, Java Deployment Toolkit в Windows использует ActiveX classid, который может представлять ваше приложение хакерам (см. http://www.kb.cert.org/vuls/id/886582). Я вышел.

Версия Java:

/**
 * @return NULL if not version found. Else return some things like: '1.6.0_31'
 */
var JavaVersion: function()
{
  var result = null;
  // Walk through the full list of mime types.
  for( var i=0,size=navigator.mimeTypes.length; i<size; i++ )
  {
      // The jpi-version is the plug-in version.  This is the best
      // version to use.
      if ( (result = navigator.mimeTypes[i].type.match(/^application/x-java-applet;jpi-version=(.*)$/)) !== null )
          return result[1];
  }
  return null;
}

Является ли Java и включена ли Java:

var IsJava: function()
{
  return typeof(navigator.javaEnabled) !== 'undefined' && navigator.javaEnabled();
}

Эти функции работают в Opera, Firefox, Chrome. У меня нет IE.

JavaVersion не работает под MSIE, так как navigator.mimeTypes всегда пуст в этом браузере (проверено на MSIE7)

Julien Kronegg 04.09.2012 12:52
navigator.mimeTypes, похоже, присутствует в IE11
mopo922 15.03.2017 18:31

Я обнаружил, что решение JavaScript, предоставляемое Java Deployment Toolkit, выдает ошибку ... «deployJava.do_initialize не является функцией».

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

Другие вопросы по теме