Изучаем Java. Создание или импорт файла исходного кода апплета. Создание файла исходного кода апплета

Апплеты

Первые два примера, представленные в этой книге, - это приложения, написанные на языке Java, т.е самостоятельные программы, аналогичные обычным машинозависимым программам.
С другой стороны, как упоминалось в предыдущей главе, ажиотаж вокруг языка Java был вызван, в основном, его возможностями выполнять апплеты под управлением Web-броузеров.

Мы хотим показать вам, как создать и выполнить апплет в режиме командной строки.

Затем мы загрузим этот апплет в программу для просмотра апплетов (appletviewer), входящую в состав пакета JDK.
В заключение мы отобразим его в Web-броузере.

Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet, а затем введите
следующие команды.
javac WelcomeApplet. java
appletviewer WelcomeApplet.html

На рис. 2.12 показано то, что вы увидите в окне программы для просмотра апплетов.

Рис. 2.12. Вид апплета WelcomeApplet в окне программы просмотра апплетов

Первая команда нам уже знакома - она вызывает компилятор языка Java. Он компилирует исходный текст апплета, содержащийся в файле WelcomeApplet. java, создавая файл байт-кода WelcomeApplet. class.

Однако на этот раз мы не запускаем интерпретатор языка Java. Вместо этого мы вызываем программу appletviewer. Эта программа специально предназначена для быстрого тестирования апплетов и входит в пакет Java SDK. Она работает не с файлом класса, а с файлом в формате HTML. Содержание файла WelcomeApplet.html показано в листинге 2.3.

Листинг 2.3
Файл WelcomeApplet.java


WelcomeApplet



This applet is from the book

Core Java by Cay Horstmann and
Gary Cornell, published by Sun Microsystems Press.






The source .



Если вы знаете язык HTML, то заметите некоторые стандартные команды языка HTML и дескриптор applet, приказывающие программе просмотра апплетов загрузить апплет, код которого содержится в файле WelcomeApplet, class. Программа аррletviewer игнорирует все дескрипторы языка HTML, за исключением дескриптора applet.

Другие дескрипторы языка HTML распознаются, когда файл в формате HTML просматривается броузером, поддерживающим язы к Java 2. Однако тут есть одна проблема.

Версии броузера Netscape 6, броузеры Mozilla и Opera поддерживают язык Java 2 как в среде Windows, так й на платформе Linux, хотя эта возможность является факультативной. Для того чтобы поэкспериментировать с апплетами, просто загрузите самую последнюю версию и убедитесь, она поддерживает Java.

Некоторые версии броузера Internet Explorer вообще не поддерживают язык Java. Другие версии поддерживают лишь очень старую виртуальную машину Java компании Microsoft (Java Virtual Machine). Если вы работаете с броузером Internet Explorer под управлением операционной системы Windows, зайдите на сайт http: //java. sun. com/get Java и загрузите программу Java Plug-In. Она добавит в броузер Internet Explorer возможности Java 2.

На платформе Macintosh под управлением операционной системы OS X возможности языка Java уже интегрированы в броузер Internet Explorer. В частности, на момент написания книги этот броузер поддерживал работу с пакетом J2SE версии 1.3. Система OS 9 поддерживает лишь устаревшую версию 1.1.

Если вы работаете с броузером Netscape 4, можете воспользоваться поддержкой языка Java 2, обеспечиваемой программой Java Plug-In. Однако при работе с апплетами, загружаемыми с помощью дескриптора applet, броузер будет по- прежнему использовать устаревшую виртуальную машину языка Java. Следовательно, придется переписать HTML-файл и вместо дескриптора applet использовать довольно неудобный дескриптор embed. Этот подход нельзя назвать удовлетворительным.

Если ваш броузер поддерживает платформу Java 2, попробуйте загрузить в него апплет. Для этого выполните следующие операции.

Запустите ваш броузер.

Выберите в меню опцию File -> Open File (или эквивалентную опцию).
Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet.

В диалоговом окне вы должны увидеть файлы WelcomeApplet .html и WelcomeAppletPlugin.html.
Загрузите файл, соответствующий вашей настройке. Броузер загрузит апплет вместе с окружающим его текстом. Он будет выглядеть примерно так, как показано на рис. 2.13.

Легко видеть, что это приложение действительно интерактивно и взаимодействует с Интернет. Нажмите на кнопку "Cay Horstmann". Апплет заставит броузер открыть Web- страницу Кея Хорстманна. Щелкните на кнопке "Gary Cornell". Апплет откроет окно для электронной почты, в котором уже указан адрес электронной почты Гари Корнелла.

Рис, 2.13. Запуск апплета WelcomeApplet с помощью броузера

Заметьте, что ни одна из этих кнопок не работает с программой просмотра аплетов. Эта программа не может посылать почту или отображать на экране Web-страницу, поэтому она просто проигнорирует ваши запросы. Программа просмотра апплетов хороша для тестирования изолированных апплетов, однако для реального взаимодействия апплета с Интернет и другими программами следует загрузить свой апплет в какой-либо броузер.

Апплет можно запустить из вашего текстового редактора или интегрированной среды разработки. При работе с редактором Emacs выберите в меню опцию JDE -> Run Applet.

При работе с редактором TextPad выберите опцию Tools -> Run Java Applet или используйте комбинацию клавиш . Перед вами откроется диалоговое окно, в котором будут представлены все HTML – файлы, хранящиеся в текущем каталоге. Если вы нажмете клавишу , редактор TextPad автоматически создаст минимальный HTML-файл.

В среде Sun ONE Studio нужно просто загрузить HTML-файл с дескрипторами апплета. Эта среда содержит небольшой броузер, выполняющий апплет на соответствующей Web-странице. В качестве альтернативы можно щелкнуть правой кнопкой мыши на файле с исходным текстом апплета и установить значение свойства "Executor" на закладке равным
"Applet Execution".

Код апплета Welcome показан в листинге 2.4. В данный момент его нужно лишь бегло просмотреть. К созданию апплетов мы еще вернемся в главе 10.

Import javax.swing.*;
import java.awt.*;
import java.awt.event.*,
import java.net.*;

public class WelcomeApplet extends JApplet
{
public void init()
{
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());

JLabel label = new JLabel(getParameter("greeting") ,
SwingConstants.CENTER);
label.setFont(new Font("Serif", Font.BOLD, 18));
contentPane.add(label, BorderLayout.CENTER);

JPanel panel = new JPanel();

JButton cayButton = new JButton("Cay Horstmann");
cayButton.addActionListener(makeURLActionListener
("http://www.horstmann.com"));
Jbutton garyButton = new Jbutton("Gary Cornell");
garyButton.addActionListener(makeURLActionListener
("mailto:garyOthecornells.com"));
panel.add(garyButton);
contentPane.add(panel, BorderLayout.South);
}
public ActionListener makeURLActionListener(fina1 string u)
{
return new
ActionListener ()
{
public void actionPerformed(ActionEvent event)
{
try {
getAppleContext().showDocument(u);
}
catch(Exeption e) (e.printStackTrace (); }
{
e. printStackTrace ();
}
}
} ;

В этой главе мы изучили механизмы компиляции и запуска программ, написанных на языке Java. Теперь мы готовы перейти к главе 3, в которой приступим к изучению языка Java.

Графические интерфейсы, рисунки и изображения могут быть реализованы в апплетах. Апплеты представляют собой разновидность графических приложений, реализованных в виде классов языка Java, которые размещаются на серверах Internet, транспортируются клиенту по сети, автоматически устанавливаются и запускаются браузером как часть документа HTML. Апплеты позволяют вставлять в документы поля, содержание которых меняется во времени, организовывать "бегущие строки", меню, мультипликацию, производить вычис­ления на клиентской странице. Апплеты выполняются браузером при отображении HTML-документа или просматриваются программой appletviewer. Апплеты не могут записывать файлы и читать информацию из файлов. Эти ограничения связаны с проблемой безопасности клиентского компьютера, поскольку клиенты не желают запускать «троянского коня» в свой компьютер. Существует несколько уровней безопасности, устанавливаемых клиентом для апплетов, загружаемых с сервера (надежные апплеты). КлассApplet обеспечи­вает интерфейс между апплетами и их окружением. Апплеты являются наследниками класса Applet из пакета java . applet из пакета AWT или его подкласса JApplet из пакета Swing.

Есть несколько методов класса Applet , которые управляют созданием и выполнением апплета на Web-странице. Апплету не нужен метод main() ,код запуска помещается в методе init() . Перегружаемый метод init() автома­тически вызывается при загрузке апплета для выполнения начальной инициализации. Методstart() вызывается каждый раз, когда апплет переносится в поле зрения браузера, чтобы начать операции. Метод stop() вызывается каждый раз, когда апплет выходит из поля зрения Web-браузера, чтобы позволить апплету завершить операции. Метод d estroy() вызывается, когда апплет начинает выгружаться со страницы для выполнения финального осво­бождения ресурсов. Кроме этих методов, при выполнении апплета автоматически запускается метод paint () класса Component . Метод paint () не вызывается явно, а только из других методов, например из метода repaint () , если необходима перерисовка.

Ниже приведен пример апплета, в котором используются методы init () , paint () , методsetColor () установки цвета символов и метод drawString () рисования строк.

/* пример # 1: вывод даты: DateApplet .java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.util.Calendar;

import java.util.Formatter;

import javax.swing.JApplet;

public class DateApplet extends JApplet {

private Formatter dateFmt = new Formatter();

private Formatter timeFmt = new Formatter();

public void init() {

setSize(180, 100);

Calendar c = Calendar.getInstance();

String era = "";

if (c.get(Calendar.ERA) == 1)

dateFmt.format("%tA %td.%tm.%tY года "

Era, c, c, c, c);

timeFmt.format("%tT", c);

public void paint(Graphics g) {

g.setColor(Color.RED);

g.drawString("Апплет стартовал в " + timeFmt,

10, getHeight()/2);

g.setColor(new Color(0,87,127));

g.drawString(dateFmt.toString(), 13,

getHeight() – 10);

Рис. 11.2. Вывод строки и даты

Доступ к элементам даты осуществлен с помощью класса java . util . Calendar . Цвет выводимых символов устанавливается с помощью полей класса Color .

После выполнения компиляции имя класса, содержащего байт-код апплета, помещается в тег < applet параметры> applet > документа HTML. Например:

DateApplet .class

width = 250 height = 250>

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

Большинство используемых в апплетах графических методов, как и исполь­зованные в примере методы setColor () , drawString() , – методы абстрактного базового класса java . awt . Graphics . КлассGraphics представляет гра­фический контекст для рисования, который затем отображается на физическое устройство. Методы апплета получают объект класса Graphics (графический кон­текст) в качестве параметра и вместе с ним – текущий цвет, шрифт, положение курсора. Установку контекста обычно осуществляют методы update () или paint () .

Ниже перечислены некоторые методы класса Graphics :

drawLine (int x1, int y1, int x2, int y2) – рисует линию;

drawRect (int x, int y, int width, int height) и fillRect(int x, int y, int width, int height) – рисуют прямоугольник и заполненный прямоугольник;

draw3DRect(int x, int y, int width, int height, boolean raised) – рисует трехмерный прямоугольник;

drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) – рисует округленный прямоугольник;

drawOval(int x, int y, int width, int height) – рисует овал;

drawPolygon(int xPoints, int yPoints, int nPoints) – рисует полигон (многоугольник), заданный массивами координат x и y ;

drawPolygon (Polygon p ) – рисует полигон, заданный объектом Polygon ;

drawPolyline (int xPoints , int yPoints , int nPoints ) – рисует последовательность связных линий, заданных массивами x и y ;

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) – рисует дугу окружности;

drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) – вставляет изображение;

drawString (String str, int x, int y) – рисует строку;

setColor(Color c) , getColor() – устанавливает и возвращает текущий цвет;

getFont() – возвращает текущий шрифт;

setFont(Font font) – устанавливает новый шрифт.

Методы класса Graphics используются для отображения графики как для классов Applet , так и для классов JApplet .

В примерах 2–4, приведенных ниже, демонстрируется использование ме­тодов класса Graphics для вывода графических изображений в окно апплета.

/* пример # 2: трехмерные прямоугольники: Th rRect . java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JApplet;

public class ThrRect extends JApplet {

public void draw3D(Graphics g, int x, int y, int width, int height, boolean isRaised, boolean isFilled) {

g.draw3DRect(x, y, width – 1, height – 1,

g.draw3DRect(x + 1, y + 1, width – 3,

height – 3, isRaised);

g.draw3DRect(x + 2, y + 2, width – 5,

height – 5, isRaised);

if (isFilled)

g.fillRect(x + 3, y + 3, width – 6,

public void paint(Graphics g) {

g.setColor(Color.GRAY);

draw3D(g, 10, 5, 80, 40, true , false );

draw3D(g, 130, 5, 80, 40, false , false );

draw3D(g, 10, 55, 80, 40, true , true );

draw3D(g, 130, 55, 80, 40, false , true );

Рис . 11.3. Трехмерные прямоугольники

Пакет java.awt содержит большое число классов, используемых для вывода изображения: Color , Font , Image , Shape , Canvas и т.д. Кроме того, возможности этого пакета расширяют пакеты java.awt.geom , java.awt.color , java.awt.image и другие.

/* пример # 3: построение фигур : BuildShape. java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Shape;

import java.awt.geom.*;

import javax.swing.JApplet;

public class BuildShape extends JApplet {

public void init() {

setSize(200, 205);

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

g2.rotate(Math.PI / 6);

drawChessBoard(g);

//поворот

g2.rotate(-Math.PI / 6);

g.setXORMode(new Color(200, 255, 250));

Shape e = new Ellipse2D.Float(70, 75, 70, 50);

//рисование эллипса

//рисование шахматной доски

public void drawChessBoard(Graphics g) {

int size = 16;

for (int y = 0; y < 8; y++) {

for (int x = 0; x < 8; x++) {

if ((x + y) % 2 == 0)

g.setColor(Color.BLUE);

g.setColor(Color.WHITE);

g.fillRect(75 + x * size, y * size – 25, size, size);

g.setColor(Color.BLACK);

g.drawString(new Character(

(char ) (‘8’ – y)).toString(), 66, y * size – 13);

g.drawString(new Character(

(char ) (y + ‘a’)).toString(),

79 + y * size, 8 * size – 14);

Рис. 11.4. Построение различных фигур

// пример # 4: вывод GIF -изображения: DrawImage . java

package chapt11;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.JApplet;

public class DrawImage extends JApplet {

private Image img;

public void init() {

img = getImage(getCodeBase(), "joli.gif");

public void paint(Graphics g){

g.drawImage(img, 0, 0, this );

При использовании свойств тега существует возможность передать параметры из HTML-документа в код апплета. Пусть HTML-документ имеет вид:

Параметры апплета

width=250 height=300>

applet >

Тогда для чтения и обработки параметров bNumber и state апплет должен выглядеть следующим образом:

/* пример # 5: передача параметров апплету: ReadParam.java */

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import java.applet.Applet;

public class ReadParam extends Applet {

private int bNum;

private boolean state;

public void start() {// чтение параметров

param = getParameter("state");

if (param != null )

state = new Boolean(param);

param = getParameter("bNumber");

if (param != null )

bNum = Integer.parseInt(param);

} catch (NumberFormatException e) {

state = false ;

public void paint(Graphics g) {

double d = 0;

if (state) d = Math.pow(bNum, 2);

else g.drawString("Error Parameter", 0, 11);

g.drawString("Statement: " + state, 0, 28);

g.drawString("Value b: " + bNum, 0, 45);

g.drawString("b power 2: " + d, 0, 62);

Рис. 11.5. Передача параметров в апплет

Если параметр недоступен, метод getParameter () возвращает null .

При применении управляющих компонентов в апплетах принято использовать классы из пакета javax . swing , в которых компонент на экране создается средствами Java и в минимальной степени зависит от платформы и оборудования. Такими классами-компонентами являются JButton , JCheckBox , JDialog , JMenu , JComboBox , JMenu , JTextField , JTextArea и другие. Компоненты, как правило, размещают в контейнер (класс C ontainer ), являющийся неявным объектом любого графического приложения. Явную ссылку на контейнер можно получить с помощью метода getContentPane () .

// пример # 6: апплет с компонентом: MyJApplet.java

package chapt11;

import java.awt.Container;

import javax.swing.JApplet;

import javax.swing.JLabel;

public class MyJApplet extends JApplet {

private JLabel lbl = new JLabel("Swing-applet!");

public void init() {

Container c = getContentPane();

Рис. 11.6. Апплет с меткой

В этой программе производится помещение текстовой метки JLabel на форму в апплете. Конструктор класса JLabel принимает объект String и использует его значение для создания метки. Автоматически вызываемый при загрузке апплета метод init() обычно отвечает за инициализацию полей и размещение компонента на форму. Для этого вызывается метод add() класса Container , который помещает компонент в контейнер. Метод add() сразу не вызывается, как можно сделать в библиотеке AWT. Пакет Swing требует, чтобы все компоненты добавлялись в "панель содержания" формы ContentPane , так что требуется сначала вызывать метод getContentPane() классаJApplet для создания ссылки на объект, как часть процесса add() .

// пример # 7: жизненный цикл апплета: DemoLC . java

package chapt11;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JApplet;

public class DemoLC extends JApplet {

private int starX =

{ 112, 87, 6, 71, 47, 112, 176, 151, 215, 136 };

private int starY =

{ 0, 76, 76, 124, 200, 152, 200, 124, 76, 76 };

private int i;

private Color c;

public void init() {

c = new Color(0, 0, 255);

setBackground(Color.LIGHT_GRAY);

public void start() {

int j = i * 25;

if (j < 255)

c = new Color(j, j, 255 – j);

else i = 1;

public void paint(Graphics g) {

g.fillPolygon(starX, starY, starX.length);

g.setColor(Color.BLACK);

g.drawPolygon(starX, starY, starX.length);

public void stop() {

Рис. 11.7. Цвет полигона и жизненный цикл апплета

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

// пример # 8: доступ к шрифтам ОС: Fon ts .java

package chapt11;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.GraphicsEnvironment;

import javax.swing.JApplet;

public class Fonts extends JApplet {

private String fonts;

public void init() {

GraphicsEnvironment ge =

GraphicsEnvironment.getLocalGraphicsEnvironment();

fonts = ge.getAvailableFontFamilyNames();

setSize(700, 400);

public void paint(Graphics g) {

int xSize = getWidth() / 170;

for (int i = 0; i < fonts.length; i++) {

g.setFont(new Font(

fonts[i], Font.PLAIN, 12)); // название, стиль, размер

g.drawString(fonts[i],

170 * (i % xSize), 13 * (i / xSize + 1));

Рис. 11.8. Вывод списка шрифтов

Привет, любимый читатель.
Сегодня ты узнаешь как подписать JAVA апплет. Для начала скажу, что JAVA апплеты имеют ограниченную функциональность, пока они не подписаны. Например, неподписанные апплеты не могут:

  • взаимодействовать с локальной файловой системой клиента;
  • устанавливать сетевые соединения с другими серверами;
  • взаимодействовать с буфером обмена клиента;
  • некоторые другие.
Вариантов решения проблемы несколько:
1. Разрешить выполнение на каждой локальной машине клиентов. Для этого можно отредактировать файл java.policy, который находится в папке с установленным JRE (по умолчанию в C:\Program Files\Java\jre6\lib\security). И добавить необходимые разрешения. Например, чтобы разрешить все, что можно, нужно вставить строчку:

Grant { ... permission java.security.AllPermission; }

А если нужно разрешить только работу с буфером обмена для сайта hackmeplease.com :

Grant codeBase "http://hackmeplease.com/*" { permission java.awt.AWTPermission "accessClipboard"; };

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

2. Подписать свой Java-апплет. Итак, что имеем на входе:
- установленные JDK и JRE;
- jar-файл своего апплета (есть некоторые особенности написания исходного кода, см. ниже);
- желание работать с буфером обмена. Для этого нужно, чтобы корректно работала строчка:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard();

В случае вызова этих строчек, из неподписанного апплета получим следующее исключение:
java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)

Итак, приступим:
0. Переходим в папку BIN нашего JDK (например, C:\Program Files\Java\jdk1.6.0_23\bin).
I. Создаем локальное хранилище нашего сертификата (keystore):
keytool -genkey -keystore .keystore -alias «Terrasoft» -validity 99999

99999 - срок в месяцах валидности сертификата;
.keystore - имя файла создаваемого хранилища.

В случае успешного запуска команды, система спросит нас пароль нашего хранилища, а также некоторую информацию о сертификате (твои ФИО, название компании, город, страну и группу крови)

В результате будем иметь файл.keystore. Это и есть наше хранилище, которым мы будем подписывать разные апплеты.
II. Копируем в папку BIN нашего JDK наш JAR-файл. Подписываем его с помощью следующей команды:
jarsigner.exe -keystore .keystore ClipboardLibrary.jar «Terrasoft»
где Terrasoft - название alias нашего сертификата;
.keystore - имя файла хранилища;
ClipboardLibrary.jar - название JAR-файла.
Система спросит нас пароль - вводим тот, что ввели в п. I.

Вроде как готово… Да щас, наивный…
Итак, при запуске страницы с нашим апплетом на борту пользователь получит дружественное сообщения вида:

Что означает, «Пользователь, нажми Да и попрощайся со своей системой, ибо мы сможем с ней делать, что захотим».
Кстати, обратите внимание на NOT VERIFIED. Означает, что у нас не доверительный сертификат. Чтобы получить доверительный, нужно обращаться в специальные службы в инете и даже платить деньгу.

Но вернемся к нашим баранам. При обращении к буферу обмена мы снова получим исключение вида:
java.security.AccessControlException: access denied (java.awt.AWTPermission accessClipboard)

Очень жаль. Ну что же, не получилось сейчас - получится в другой раз. До свидания.

Шучу. На самом деле на этом моменте останавливаются все руководства по подписыванию апплетов, которые я встречал. Мол, подписанному апплету ничего не страшно. Пусть им всем будет стыдно.
Короче, следующий финт для того, чтобы наше обращение к буферу обмена заработало:

III. Изменить исходный код.
Вместо вызова вида:
clipboard = toolkit.getSystemClipboard()
нужно написать вызов вида:
clipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { return toolkit.getSystemClipboard(); } });
После этого нужно перекомпилировать свой JAR и повторить шаг II (тем, кто читал с конца мое сообщение - респект).

Вот в общем-то и все. Должно работать. Надеюсь, что кому-то это пригодится, и он не будет столько своей жизни тратить на эту ерунду, сколько потратил я. Нехай проблеми i негоди не роблять вам в життi погоди (С). До новых встреч в эфире.

В статье, я расскажу как исправить ошибку Java апплет не загружен. На протяжении более чем десятилетия существовало большое количество веб-технологий. Так, например, для мультимедиа и простых игр использовался Flash, а для проведения операций, предъявляющих высокие требования к безопасности – ActiveX и Java. Но если разработанная Microsoft ActiveX уже давно канула в лету, то Java EE продолжает быть актуальной до сих пор. И дело не в том, что не существует достойных и более простых для конечного пользователя аналогов (они-то как раз появились несколько лет назад), проблема в том, что некоторые организации вложили десятки и сотни тысяч долларов в разработку приложений на основании этих технологий, и они просто так не могут от них отказаться. Именно поэтому, пользователи при попытке войти в определенный сервис могут видеть сообщение: Java апплет не загружен, что делать если вы повстречали его мы как раз и рассмотрим ниже.

У некоторых клиентов ВТБ24 при попытки зайти в ВТБ24 онлайн возникает ошибка. Она как раз связана с тем, что Java апплет либо не установлен в системе, либо он отключен.

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

Что делать, если Java апплет не загружен

В первую очередь потребуется установить само программное обеспечение. Если оно загружено, но не включено, все равно скачайте – пусть будет установлена самая свежая версия. Для этого:

  1. Посетите страницу загрузки Java на официальном сайте ;
  2. Ресурс должен самостоятельно определить операционную систему и предложить ссылку на загрузку нужной версии ПО;
  3. Кликните на красную кнопку «Загрузить Java бесплатно»;
  4. После этого сразу начнется процесс загрузки;
  5. Запустите скаченный файл и проследуйте инструкциям;
  6. Перезагрузите браузер.

Следует отметить, что в Google Chrome (начиная с 42-й версии) апплет Java официально не поддерживается, так как корпорация считает соответствующую технологию устаревшей. Поэтому, чтобы воспользоваться Java запустите другой веб-браузер, например, FireFox.

Чтобы проблем с Java не возникало, выполните следующие действия:

  1. Запустите Firefox (если он отсутствует, то скачайте и установите его с официального сайта);
  2. Откройте меню программы и нажмите на «Дополнения»;
  3. Оказавшись на соответствующей странице, перейдите на вкладку «Плагины»;
  4. Напротив пункта «модуль платформы Java» будет переключатель – переведите его в положение «Всегда включать» (если он уже включен, то ничего не делайте);
  5. Можете перезагрузить браузер.

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

Можно ли обойтись без Java

Если у вас нет необходимости использовать веб-приложения (как в случае в банковским клиентом ВТБ24), созданные на основании Java EE, тогда соответствующий апплет вам ни к чему. Постепенно даже крупные компании переходят на более актуальные сейчас для веб-а технологии, делая взаимодействие с функциями их сервисов намного проще для конечного пользователя.

Вконтакте