Путеводитель по сайту

Что такое Java Virtual Machine, или Джава – это вам не Ява!..

English version Распечатать

***

***

 

***

Краткая Java-терминология

Виртуальная машина (virtual machine) – абстрактное вычислительное устройство, которое может быть реализовано разными способами: аппаратно или программно. Компиляция в набор команд виртуальной машины происходит почти так же, как и компиляция в набор команд микропроцессора.

 

Java-платформа (Java Platform) – виртуальная машина Java и стандартные классы составляют Java-платформу. Java-платформа предоставляет программам унифицированный интерфейс независимо от операционной системы, на которой они работают.

 

Java Remote Method Invocation (JRMI) – интерфейс вызова удаленных методов. Распределенная объектная модель, определяющая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.

 

Java Runtime Environment (JRE) – среда исполнения Java. Подмножество Java Development Kit, предназначенное для конечных пользователей. JRE состоит из виртуальной машины Java (JVM), стандартных классов Java и вспомогательных файлов.

 

Java Virtual Machine (JVM) – виртуальная машина Java, часть среды исполнения Java, выполняющая интерпретацию Java байт-кода. Java Virtual Machine специфицируется набором команд байт-кода, набором регистров, стеком, сборщиком мусора и пространством хранения методов.

 

Java байт-код (Java bytecode) – машинно-независимый код, который генерирует Java-компилятор. Байт-код выполняется Java-интерпретатором. Виртуальная машина Java полностью стековая: не требуется сложная адресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами (bytecodes), хотя имеются команды длиной 2 и 3 байта (средняя длина команды составляет 1,8 байта).

Программа, написанная на языке Java, переводится компилятором в байт-код. Байт-код записывается в одном или нескольких файлах, может храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодом. Полученный в результате компиляции байт-код можно выполнять на любом компьютере, имеющем систему, реализующую JVM (в не зависимости от типа какого-либо конкретного процессора и архитектуры ПК). Так реализуется принцип Java: «Write once, run anywhere» «Написано однажды, выполняется где угодно».

 

Java-апплеты (Java applets) – Java-приложения, доступ к которым можно получить из веб-браузера.

 

***

Что такое технология Java

Технология Java была создана как инструмент программирования в компании Sun Microsystems в 1991 г. в рамках небольшого закрытого исследовательского проекта, получившего кодовое название «Green» («Зелёный проект»).

«Зеленая команда» из 13 инженеров и разработчиков под руководством Джеймса Гослинга (James Gosling) в течение полутора лет работала сутками напролет в отдельном офисе на Sand Hill Road в г. Менло Парк (Калифорния; опять Силиконовая долина!), не информируя о своей работе компанию Sun.

Инженеры «Зеленой команды» старались предвосхитить грядущую «новую волну» в программировании и  подготовиться к ней. Первоначально они исходили из предположения, что одной из основных тенденций развития будет сближение между цифровой потребительской техникой и компьютерами.

Результатом этой работы стал машинно-независимый язык программирования, получивший кодовое название «Oak» (Дуб).

Чтобы продемонстрировать, как новый язык программирования может в будущем использоваться в цифровой технике, «Зеленая команда» создала домашний портативный интерактивный контроллер для цифрового кабельного телевидения. Но тогда эта идея была слишком новаторской, и цифровое кабельное телевидение не было готово к тому резкому прорыву, который предлагала технология Java.

Однако новаторство технологии Java оказалось востребованным для Интернета, и на первой официальной презентации технологии Java в 1995 г. команда Гослинга смогла объявить, что технология Java будет использована в интернет-обозревателе Netscape Navigator.

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

 

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

• более 700 млн. ПК;

• более 1 млрд. мобильных телефонов и других портативных устройств;

• 1,25 млрд. смарт-карт;

• а также телеприставки, принтеры, веб-камеры, игры, автомобильные системы навигации, игровые автоматы, медицинское оборудование, парковочные автоматы и т. д.

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

 

***

Почему разработчики программного обеспечения выбирают технологию Java

Язык программирования Java всесторонне дорабатывали, расширяли, тестировали и проверяли на практике более 4 млн. разработчиков программного обеспечения.

Законченная, чрезвычайно надёжная и универсальная технология Java неоценима для разработчиков программного обеспечения тем, что она позволяет им:

• писать программное обеспечение на одной платформе и запускать его практически на любой другой;

• создавать программы для работы в веб-обозревателях и веб-службах;

• разрабатывать серверные приложения для интернет-форумов, магазинов, опросов, обработки HTML-форм и др.;

• создавать максимально приспособленные для требований пользователя приложения и службы, комбинируя различные Java-модули;

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

 

***

Что представляет собой технология Mobile Java (J2ME – Java 2 Micro Edition)

В состав J2ME входит оптимизированная для широкого круга пользователей мобильных устройств версия JRE. Основными компонентами компактной версии платформы Java 2 (J2ME) являются виртуальная машина для устройств со стандартными конфигурациями (CDC), виртуальная машина для устройств с ограниченными конфигурациями (CDLC) и профили мобильных устройств с информационными функциями. Кроме того, в состав этой платформы входит множество других инструментальных средств и технологий, упрощающих создание программ Java для бытовых и встроенных устройств (мобильные телефоны, карманные компьютеры, смарт-карты, пейджеры, телеприставки и другие мобильные и беспроводные устройства).

Технологии J2ME, в свою очередь, входят в состав семейства программных продуктов Java. Среди родственных технологий – стандартная (J2SE) и корпоративная (J2EE) версии платформы Java 2. Помимо прочего, технология Java помогает разрабатывать веб-службы, организовывать и передавать данные на языке XML, устанавливать соединения по различным сетевым протоколам, работать с инструментальными пакетами и реализовывать функции приложения Java Web Start.

Со стандартной версией исполнительной среды Sun Java (JRE) версию J2ME роднит соблюдение стандартных соглашений для платформ Java и участие в разработке ведущих производителей мобильных устройств и поставщиков услуг беспроводной связи.

 

***

Что такое KVM

KVM (Kilo Virtual Machine) – это элемент исполнительной среды, входящий в состав компактной версии платформы Java 2 (J2ME) и предназначенный для применения в устройствах с ограниченной емкостью памяти и производительностью процессора. Стандартные вычислительные функции в мобильных телефонах, пейджерах и карманных компьютерах (PDA) часто реализуются именно при помощи KVM.

Подобно JVM (виртуальной машине Java), KVM исполняет приложения и апплеты на основе технологии Java. KVM применяется в сотовых телефонах и других мобильных устройствах, в то время как JVM устанавливается в компьютерах. В состав стандартной версии платформы Java 2 (J2SE) входят JRE, Java Plug-in и JVM.

 

Помимо KVM, платформа J2ME содержит множество виртуальных машин различных масштабов. KVM – это один из вариантов реализации виртуальной машины для устройств с ограниченной конфигурацией (Connected Limited Device Configurations, CDLC), предназначенный для исполнения программных продуктов на основе технологии Java в мобильных устройствах.

Родственной технологией J2ME являются профили мобильных устройств с информационными функциями (Mobile Information Device Profiles, MIDP), которые чаще всего применяются при разработке приложений для мобильных устройств – в частности, для мобильных телефонов и двухсторонних пейджеров.

 

***

Как получить программное обеспечение Java для мобильных устройств/КПК?

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

Виртуальная машина KVM является аналогом виртуальной машины Java (JVM), предназначенным для мобильных устройств. Она обеспечивает исполнение апплетов и приложений, написанных на языке Java, в мобильных устройствах. Виртуальная машина KVM должна быть установлена производителем. Её НЕЛЬЗЯ загрузить и установить самостоятельно.

 

***

Что такое Java Virtual Machine

Java Virtual Machine (сокращенно Java VM, JVM) – виртуальная машина Java – основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java интерпретирует и исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java.

В 1996 г. компания Sun выпустила первую версию документа «Голубая книга JVM», в котором описана спецификация виртуальной машины Java, ставшего де-факто отраслевым стандартом платформы Java. Благодаря этому документу появились альтернативные реализации JVM, являющиеся «разработками с чистого листа» (англ. clean room design). В качестве примера можно привести Kaffe.

Начиная с версии J2SE 5.0 изменения в спецификации JVM вырабатываются в соответствии с формализованными пожеланиями заинтересованных сторон. Процесс внесения изменений в спецификации JVM называется Java Community Process.

 

***

Противостояние Sun и Microsoft

В начале развития платформы Java существовали две конкурирующие реализации Java VM – одна от фирмы Sun Microsystems, создателя языка Java, для различных платформ (Windows, Mac OS, Unix), и другая – от фирмы Microsoft, ориентированная только на платформу Windows и, по утверждению Microsoft, «специально оптимизированная для быстрого выполнения Java-кода на платформе Microsoft Windows».

Однако, Microsoft JVM была не полностью совместима со спецификацией, описанной Sun в Голубой книге JVM, а также имела существенные проблемы, связанные с безопасностью и с производительностью при работе под большими нагрузками (при большом числе одновременно выполняемых потоков). Компания Sun посчитала такую ситуацию недопустимой и решила, что Microsoft занимается намеренной дискредитацией и профанацией платформы Java путём распространения своей версии виртуальной машины Java, обладающей вышеперечисленными недостатками.

На этом основании Sun неоднократно подавала в суд на Microsoft, и последовательно добилась сначала того, что Microsoft потеряла право называть свою реализацию JVMJava VM. С этого момента Microsoft стала называть свой продукт просто Microsoft VM. Затем Microsoft потеряла право встраивать свою VM в браузеры и операционные системы. После этого Microsoft вынуждена была изъять свою VM из поставки Windows и из пакета IE, но могла, согласно решению суда, предлагать её отдельно для скачивания на своем сайте. Затем Sun добилась прекращения разработки новых версий Microsoft VM и прекращения выпуска обновлений к ней, а затем и исключения Microsoft VM из списка доступных для скачивания программ на сайте Microsoft.

Некоторые IT-эксперты считают, что жёсткая позиция, занятая Sun по вопросу Java, могла послужить дополнительным стимулом для разработки компанией Microsoft собственного кросс-платформенного решения – .NET Framework.

 

***

О борьбе за соблюдение стандартов

Вот что говорит по этому поводу «отец» Java Джеймс Гослинг: «Если говорить о соблюдении стандартов, то наш конфликт с Microsoft состоял в том, что эта компания попыталась ограничить интероперабельность своей виртуальной машины, тем самым нарушив достигнутое раннее соглашение. Код, оптимизированный под эту машину, не исполнялся на других платформах. Налицо попытка привязать пользователей к своей системе. Такие попытки всегда пресекались и будут пресекаться впредь. Однако если принцип интероперабельности соблюдается, то никаких препятствий нет. Например, у IBM по меньшей мере полдюжины виртуальных машин Java, есть свои разработки в этой области у HP и многих других компаний».

 

***

Противостояние Sun и IBM

В 2001 г., с целью разработки стандарта кросс-платформенных desktop-приложений, IBM стартовала открытый проект Eclipse. Фреймворк Eclipse основан на закрытой разработке IBM VisualAge. IBM удалось сбалансировать интересы свободного сообщества и интересы бизнеса (свои интересы) в лицензии Eclipse Public License, признанной FSF.

Проект успешно развивается, признан индустрией, в значительной степени отделился от IBM в самостоятельную Eclipse Foundation.

Sun остается в оппозиции Eclipse Foundation, как и Microsoft. Формально основной причиной противоречий остается библиотека SWT, которая противоречит Sun-концепции виртуальной машины и переносимости джава-приложений.

 

***

Как проверить, какая версия Java установлена на вашем ПК

Откройте страницу java.com/ru/download/installed.jsp;

– нажмите кнопку Проверьте версию Java.

 

Как скачать и установить Java Virtual Machine

– откройте страницу java.com/ru;

– нажмите кнопку Скачать Java бесплатно;

– если загрузка Java не начнется автоматически через несколько секунд, щелкните ссылку here to start the download (по этой ссылке, чтобы начать скачивание);

– в окне Предупреждение о безопасности нажмите Да –> Continue –> Accept (если вы хотите изменить путь к установочной папке или изменить другие параметры, выберите Show Advanced Options Panel) –> Next –> Next –> в окне с сообщением Thank You! You have Successfully Installed Java нажмите Finish.

 

Как скачать Java вручную

Чтобы скачать Java вручную, откройте страницу java.com/ru/download/manual.jsp;

– выберите файл в соответствии с вашей операционной системой из списка, скачайте его и запустите установочный файл;

– в окне Java Setup нажмите Continue –> Accept (если вы хотите изменить путь к установочной папке или изменить другие параметры, выберите Show Advanced Options Panel) –> Next –> Next –> в окне с сообщением Thank You! You have Successfully Installed Java нажмите Finish.

 

 

Примечания

1. После завершения установки Java может потребоваться перезапустить браузер.

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

3. В браузере должна быть включена поддержка JavaScript и cookies.

4. Стандартный размер скачивания составляет 7,1МБ (это минимальный объем скачиваемых файлов). Размер может увеличиться в случае выбора дополнительных функций.

5. Кроме Windows, вы можете скачать Java для Solaris, Linux.

Для Apple (OS X) скачайте Java с сайта компании Apple.

6. Поддерживаются процессоры Intel и совместимые с ними процессоры других производителей. Рекомендуется к применению процессор Pentium с тактовой частотой 166МГц и выше в сочетании с физической оперативной памятью емкостью не менее 64МБ. Кроме того, вам понадобится как минимум 98МБ свободного дискового пространства.

7. После установки виртуальной машины Java от Sun Microsystems в Реестре Windows создается раздел

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_SUN].

После установки виртуальной машины Microsoft Java Virtual Machine в Реестре Windows создаются разделы

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Java VM] и

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM].

 

 

***

Где скачать Microsoft Java Virtual Machine

В ОС Windows некоторые программы требуют при установке наличия в системе виртуальной машины Java от Microsoft.

Microsoft VM (версия 5.00.3810 от 07.03.2003; 5,07МБ) можно скачать по ссылке.

 

***

Как удалить Microsoft Java Virtual Machine

Чтобы удалить msjava:

– нажмите Пуск –> Выполнить;

– в открывшемся окне Запуск программы в текстовое поле Открыть введите RunDll32 advpack.dll,LaunchINFSection Java.inf,UnInstall –> OK;

– удалите папку \WINDOWS\java;

– удалите файл \WINDOWS\inf\java.pnf;

– удалите файл \WINDOWS\system32\jview.exe;

– удалите файл \WINDOWS\system32\wjview.exe;

– нажмите Пуск –> Выполнить;

– в открывшемся окне Запуск программы в текстовое поле Открыть введите regedit –> OK;

– в открывшемся окне Редактор реестра удалите разделы

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Java VM]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM];

– закройте Редактор реестра.

 

***

Как разрешить использование исполнительной среды Java (JRE) в веб-обозревателе

Симптомы: апплеты не работают.

Причина: использование исполнительной среды Java (JRE) не разрешено в веб-обозревателе. Если JRE уже установлена, а апплеты не работают, возможно, требуется подключить JRE через веб-обозреватель.

Решение:

Internet Explorer 4.x и выше:

– нажмите Пуск –> Настройка –> Панель управления –> Свойства обозревателя;

– в открывшемся диалоговом окне Свойства: Интернет откройте вкладку Дополнительно, в прокручиваемом списке Параметры найдите опцию Java (Sun), установите флажок Use JRE 1.6.0_06 <for applet> (requires restart);

– откройте вкладку Безопасность, нажмите кнопку Другой…;

– в открывшемся окне Параметры безопасности в прокручиваемом списке Параметры найдите Сценарии –> Выполнять сценарии приложений Java –> установите переключатель Разрешить –> OK –> OK.

 

Mozilla 1.x; Netscape 7.x:

– в строке меню выберите Редактировать –> Параметры –> Дополнительно;

– установите флажок Разрешить Java –> OK.

 

Firefox 0.8 и выше:

– запустите обозреватель Mozilla Firefox или перезапустите его, если он уже запущен;

– выберите меню Сервис –> Свойства;

– в диалоговом окне Свойства выберите Контент –> Разрешить Java.

 

Opera 4.x и выше:

Opera для Windows использует не JRE компании Sun, а встроенную версию в веб-обозревателе Opera;

Opera для других платформ может поддерживать программное обеспечение Java с помощью JRE компании Sun.

Подробнее см. документацию вашей платформы Opera.

 

***

Переключение между виртуальной машиной Microsoft и исполнительной средой Sun Java (JRE)

Виртуальные машины JavaSun и Microsoft – можно задействовать по очереди. Sun JVM можно включать и выключать, не удаляя её. Переключение между этими виртуальными машинами осуществляется во вкладке Advanced (Дополнительно) диалогового окна Internet Options (Свойства обозревателя) или в панели управления Java (рекомендуется проверить параметры в обоих окнах).

 

***

Переключение между виртуальными машинами Sun и Microsoft VM в окне Internet Options (Свойства обозревателя)

– нажмите Start (Пуск) –> Settings (Настройки) –> Control Panel (Панель управления) –> Internet Options (Свойства обозревателя);

– в открывшемся диалоговом окне Internet Options (Свойства: Интернет) откройте вкладку Advanced (Дополнительно), в прокручиваемом списке Параметры найдите опцию Java (Sun), установите или снимите флажок Use JRE 1.6.0_06 <for applet> (requires restart);

– снимите или установите флажок Microsoft VM –> OK;

– перезапустите обозреватель.

 

***

Переключение между виртуальными машинами Sun и Microsoft при помощи панели управления Java

– нажмите Start (Пуск) –> Settings (Настройки) –> Control Panel (Панель управления) –> Java;

– в открывшемся диалоговом окне Java Control Panel (Панель управления Java) откройте вкладку Advanced (Дополнительно);

– в разделе Settings (Настройки) раскройте значок "+" рядом со строкой Default Java for browsers (Установки Java по умолчанию для обозревателя);

– установите или снимите флажок напротив имени обозревателя, которому предполагается разрешить или запретить применение JVM –> OK;

– перезапустите обозреватель.

 

Валерий Сидоров

 

 

***

Раскрывая тайны Windows…

Дело о…

Статьи о ПК и PC

Вирусы vs. антивирусы

Apple = iСтив + iPod + iPhone + iPad + iTunes + iMac + …

Apps for iPad, iPhone, iPod touch…

 

 

 

 

Путеводитель по сайту

18+

© Сидоров В.В. 2016. All rights reserved.

Авторство всех материалов сайта http://netler.ru принадлежит Валерию Сидорову и охраняется Законом о защите авторских прав. Использование материалов сайта в offline-изданиях без согласования с автором категорически запрещается. В online-изданиях разрешается использовать материалы сайта при условии сохранения имени и фамилии автора и активной гиперссылки на сайт http://netler.ru.