Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Узнать версию JAVA


Автор: sergejzr 7.12.2007, 23:31
Проблема у меня в том, что апплет скомпиленный под 1.6 не запускается под 1.4. Мне бы выдать сообщение пользователю, но как это сделать, если мой апплет даже не запускается? Неужели надо компилить запускаемую под 1.4 и уже потом подгружать скомпиленное на 1.6??

Автор: Key 8.12.2007, 10:55
Помоему единственно нормальный вариант это подписать апплет снизу мелким шрифтом или там же дать ссылку на хелп.

Предусмотреный вариант:
Код

<APPLET CODE="HelloWorld.class" WIDTH=100 HEIGHT=100 ALIGN=MIDDLE> 
install bla bla bla
</APPLET> 


Работает только в 50% случаев и класс должен обязательно существовать.
У меня в интернет експлорере если отключены апплеты или не та версия машины работает всегда.
В половине браузеров линукса тоже работает. В файрфоксе никогда не работает.

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

Автор: ivg 8.12.2007, 12:37
А что если, только сам класс аплета скомпилить его под 1.4, а все остальное, где нужны новые фичи под 1.6, упаковать в один jar. Ну и проверять в аплете версию, и дальше по обстоятельствам  smile. Только, классы скомпилированные под 1.6 похоже через рефлексию надо будет загружать (Интересно в аплетах рефлексия работает?).
Ну вот как вариант, сам не пробовал  smile

Или через JavaScript версию получить, видел где то пример, но там для IE всё равно аплет используется.

Автор: sergejzr 8.12.2007, 14:01
Key, Это уже неплохо в приципе, надо только подумать, как лису добить..
Проверка javascript#ом на наличие JAVA работает везде кроме експлорера..

Цитата(ivg @  8.12.2007,  11:37 Найти цитируемый пост)
А что если, только сам класс аплета скомпилить его под 1.4, а все остальное, где нужны новые фичи под 1.6, упаковать в один jar. Ну и проверять в аплете версию, и дальше по обстоятельствам  smile. Только, классы скомпилированные под 1.6 похоже через рефлексию надо будет загружать (Интересно в аплетах рефлексия работает?).
Ну вот как вариант, сам не пробовал  smile

Должно сработать, просто интересно, есть ли решения попроще..

Цитата(ivg @  8.12.2007,  11:37 Найти цитируемый пост)
Или через JavaScript версию получить, видел где то пример, но там для IE всё равно аплет используется. 

Версию JAVA нельзя получитъ JAvascript'ом (без апплета) это точно.

Автор: LSD 8.12.2007, 15:32
Цитата(sergejzr @  7.12.2007,  23:31 Найти цитируемый пост)
Проблема у меня в том, что апплет скомпиленный под 1.6 не запускается под 1.4. Мне бы выдать сообщение пользователю, но как это сделать, если мой апплет даже не запускается? Неужели надо компилить запускаемую под 1.4 и уже потом подгружать скомпиленное на 1.6??

По мне так вариант ivg самый правильный (только рефлексия там ни к чему).

Пишем апплет который будет работать даже на 1.1, затем в нем проверяем версию JVM. Если 1.6, то вызываем загрузчику основного кода (например создаем панель с компонентами или еще что). Если нет, то показываем сообщение пользователю и перенаправляем его на сайт загрузки JVM.



P.S. sergejzr а зачем тебе для апплета именно Java 1.6 понадобилась, что ты такого оттуда используешь? И почему не хочешь использовать тег http://forum.vingrad.ru/forum/topic-75496.html, он же позволяет указать какая именно JVM требуется?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)