Как запустить апплет java в браузере

Обновлено: 07.07.2024

Апплет – это программа Java, запускаемая в веб-браузере. Апплет может быть полнофункциональным Java-приложением, поскольку имеет в своем распоряжении весь прикладной программный интерфейс Java.

Содержание

Между апплетом и автономным Java-приложением есть некоторые важные различия, в том числе следующие:

  • Апплет это класс Java, расширяющий класс java.applet.Applet.
  • Метод main() не вызывается в апплете, и класс Applet не определяет main().
  • Динамические сетевые программы предназначены для встраивания в HTML-страницу.
  • Если пользователь просматривает HTML-страницу, содержащую апплет, код для апплета загружается на компьютер пользователя.
  • Для просмотра апплета требуется виртуальная машина Java. Виртуальная машина Java может быть либо подключаемым модулем веб-браузера, либо отдельной средой выполнения.
  • Виртуальная машина Java на устройстве пользователя создает экземпляр класса Applet и вызывает различные методы в течение жизненного цикла апплета.
  • Динамические сетевые программы имеют строгие правила безопасности, которые соблюдаются веб-браузером. Безопасность апплета часто называют службой безопасности изолированной программной среды, когда апплет сравнивают с ребенком, играющим в песочнице с различными правилами, которые необходимо соблюдать.
  • Другие классы, которые нужны апплету, можно загрузить в одном файле архива Java (JAR).

Жизненный цикл апплета

Четыре метода в классе Applet определяют основу для создания любого серьезного апплета:

  • init — этот метод предназначен для любой инициализации, необходимой для вашего апплета. Он вызывается после обработки тегов параметров внутри тега апплета.
  • start — этот метод автоматически вызывается после того, как браузер вызывает метод init. Он также вызывается всякий раз, когда пользователь возвращается на страницу, содержащую апплет, после перехода на другие страницы.
  • stop — этот метод автоматически вызывается, когда пользователь покидает страницу, на которой находится апплет. Поэтому его можно вызывать повторно в одном и том же апплете.
  • destroy — этот метод вызывается только при обычном завершении работы браузера. Поскольку апплеты предназначены для размещения на странице HTML, обычно не следует оставлять ресурсы после того, как пользователь покидает страницу, содержащую апплет.
  • paint — вызывается сразу после метода start(), а также каждый раз, когда апплету необходимо перерисовать свой образ в браузере. Метод paint() фактически унаследован от java.awt.

Динамическая сетевая программа "Привет, Мир"

Ниже приведен простой апплет HelloWorldApplet.java.

Эти операторы импорта переносят классы в область действия нашего класса Applet:

Без этих операторов импорта компилятор Java не распознал бы классы Applet и Graphics, на которые ссылается класс Applet.

Класс Applet

Каждый апплет является расширением класса java.applet.Applet. Базовый класс Applet предоставляет методы, которые производный класс Applet может вызывать для получения информации и служб из контекста браузера.

К ним относятся методы, которые выполняют следующее:

Кроме того, класс Applet предоставляет интерфейс, с помощью которого средство просмотра или браузер получает информацию об апплете и управляет его выполнением. Зритель может:

  • Запросить информацию об авторе, версии и авторских правах апплета.
  • Запросите описание параметров, которые распознают апплет.
  • Инициализировать апплет.
  • Удалить апплет.
  • Запустить выполнение апплета.
  • Остановить выполнение апплета.

Класс Applet предоставляет реализации по умолчанию для каждого из этих методов. При необходимости эти реализации могут быть отменены.

Динамическая сетевая программа Hello, World скомпилирована в данных условиях. Единственный переопределяемый метод – это метод отрисовки.

Вызов апплета

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

Тег <applet> является основой для встраивания апплета в файл HTML. Ниже приведен пример, вызывающий апплет Hello, World.

Примечание. Вы можете обратиться к HTML-тегу апплета, чтобы узнать больше о вызове апплета из HTML.

Атрибут кода тега <applet> является обязательным. Он определяет запускаемый класс Applet. Ширина и высота также необходимы для указания начального размера панели, на которой запускается апплет. Директива апплета должна быть закрыта тегом </applet>.

Если апплет принимает параметры, для параметров можно передать значения, добавив теги <param> между <applet> и </applet>. Браузер игнорирует текст и другие теги между тегами апплета.

Браузеры без поддержки Java не обрабатывают <applet> и </applet>. Следовательно, все, что появляется между тегами, не связанное с апплетом, отображается в браузерах без поддержки Java.

Средство просмотра или браузер ищет скомпилированный код Java в том месте, где находится документ. Чтобы указать иное, используйте атрибут кодовой базы тега <applet>, как показано далее:

Если апплет находится в пакете, отличном от пакета по умолчанию, пакет хранения должен быть указан в атрибуте кода с использованием символа точки (.) для разделения компонентов пакета/класса. Например:

Получение параметров апплета

В следующем примере показано, как заставить апплет реагировать на параметры настройки, указанные в документе. Этот апплет отображает узор шахматной доски черного и второго цвета.

Второй цвет и размер каждого квадрата могут быть указаны в качестве параметров апплета в документе.

CheckerApplet получает свои параметры в методе init(). Он также может получать свои параметры в методе paint(). Однако получение значений и сохранение настроек один раз при запуске апплета, а не при каждом обновлении, более удобно и эффективно.

Средство просмотра апплета или браузер вызывает метод init() для каждого апплета, который он запускает. Программа просмотра вызывает init() один раз, сразу после загрузки апплета. (Applet.init() не выполняет никаких функций.) Переопределите реализацию по умолчанию, чтобы вставить пользовательский код инициализации.

Метод Applet.getParameter() выбирает параметр по имени параметра (значение параметра всегда является строкой). Если значение представлено числовыми или другими небуквенными данными, строку необходимо проанализировать.

Ниже приведен скелет программы CheckerApplet.java

Вот метод CheckerApplet's init() и частный метод parseSquareSize():

Динамическая сетевая программа вызывает parseSquareSize() для анализа параметра squareSize. parseSquareSize() вызывает библиотечный метод Integer.parseInt(), который анализирует строку и возвращает целое число. Integer.parseInt() выдает исключение всякий раз, когда его аргумент недопустим.

Следовательно, parseSquareSize() перехватывает исключения, а не позволяет апплету останавливаться при неверном вводе.

Динамическая сетевая программа вызывает parseColor(), чтобы проанализировать параметр цвета в значение цвета. parseColor() выполняет серию сравнений строк, чтобы сопоставить значение параметра с именем предопределенного цвета. Вам необходимо реализовать эти методы, чтобы этот апплет работал.

Определение параметров апплета

Ниже приведен пример HTML-файла со встроенным CheckerApplet. Файл HTML определяет оба параметра апплета с помощью тега <param>.

Примечание: в именах параметров не учитывается регистр.

Преобразование приложений в апплет

Графическое приложение Java (то есть приложение, которое использует графический интерфейс пользователя и которое можно запускать с помощью средства запуска программ Java) легко преобразовать в апплет, которую можно встроить в веб-страницу.

Ниже приведены конкретные шаги для преобразования приложения в апплет.

  • Создайте HTML-страницу с соответствующим тегом для загрузки кода апплета.
  • Предоставьте подкласс класса JApplet. Сделайте этот класс общедоступным. В противном случае апплет не может быть загружен.
  • Исключите основной метод в приложении. Не создавайте рамочное окно для приложения. Ваше приложение будет отображаться внутри браузера.
  • Переместите любой код инициализации из конструктора рамочного окна в метод инициализации апплета. Вам не нужно явно создавать объект апплета. Браузер создает его для вас и вызывает метод init.
  • Удалите вызов setSize; для апплета размер задается с указанием параметров ширины и высоты в файле HTML.
  • Удалите вызов setDefaultCloseOperation. Динамическую сетевую программу нельзя закрыть; она завершается, когда браузер закрывается.
  • Если приложение вызывает setTitle, исключите вызов метода. Динамические сетевые программы не могут иметь заголовков. (Вы, конечно, можете присвоить заголовок самой веб-странице, используя тег заголовка HTML.)
  • Не вызывайте setVisible(true). Динамическая сетевая программа отображается автоматически.

Обработка событий

Динамические сетевые программы наследуют группу методов обработки событий от класса Container. Класс Container определяет несколько методов, таких как processKeyEvent и processMouseEvent, для обработки определенных типов событий, а затем один универсальный метод, называемый processEvent.

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

Теперь давайте назовем этот апплет следующим образом:

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

Отображение изображений

Динамическая сетевая программа может отображать изображения в формате GIF, JPEG, BMP и других форматах. Чтобы отобразить изображение в апплете, вы используете метод drawImage() из класса java.awt.Graphics.

Ниже приведен пример, иллюстрирующий все шаги для отображения изображений.

Теперь давайте назовем этот апплет следующим образом:

Воспроизведение аудио

Динамическая сетевая программа может воспроизводить аудиофайл, представленный интерфейсом AudioClip в пакете java.applet. Интерфейс AudioClip имеет три метода, в том числе:

  • public void play() — воспроизводит аудиоклип один раз с самого начала.
  • public void loop() — вызывает непрерывное воспроизведение аудиоклипа.
  • public void stop() — останавливает воспроизведение аудиоклипа.

Чтобы получить объект AudioClip, необходимо вызвать метод getAudioClip() класса Applet. Метод getAudioClip() немедленно возвращается независимо от того, ссылается ли URL-адрес на фактический аудиофайл. Аудиофайл не загружается, пока не будет сделана попытка воспроизвести аудиоклип.

У меня есть рабочее приложение, которое мне нужно время от времени запускать, и у нас есть URL, который загружает страницу только с тегом объекта, указывающим на какой-нибудь удаленный файл JAR. Очевидно, у меня уже установлена JRE.

Разметка для апплета выглядит следующим образом:

3 ответа 3

Кажется, вы хотите запустить приложение / апплет Oracle Forms вне браузера.

Существует инструмент, который делает именно это: Forms EXEJar

Вы просто запускаете это с URL вашего Forms Application, и он создает исполняемый файл JAR из вашего Forms application. Это также работает со всеми типичными проблемами сбоев Internet Explorer и т.д., Так как не зависит от браузера.

Надеюсь, это поможет, Сэм

Вы можете скачать JAR и попробовать запустить его с:

Вы также должны проверить, есть ли какие-либо параметры для JAR в исходном HTML-коде страницы (например, информация о соединении и т.д.)

Загрузите удаленный файл JAR.

Также загрузите исходный код для веб-страницы (сохраните страницу в формате HTML).

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

Дважды щелкните отредактированный файл HTML, чтобы открыть его в браузере. Теперь все должно работать локально.

Кстати, я заметил один параметр, в частности:

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

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

Изменить: Кроме того, в Google Chrome есть функция создания ярлыков приложений на веб-страницах. Возьмите Chrome, если у вас его нет (установка быстрая и безболезненная), а затем перейдите на страницу с апплетом. В меню выберите Сервис -> Создать ярлыки приложений. Это создаст ярлык на рабочем столе (и, возможно, в меню «Пуск»), который при нажатии откроет страницу в новом окне в стиле приложения; нет панелей браузера, нет вкладок, независимо от любого другого просмотра, который вы делаете. Это приблизит вас к ощущению реального настольного приложения и будет звучать так, как вы собираетесь.

У меня есть старый набор *.class файлы с .html чтобы запустить его, и я просто хочу иметь возможность запустить этот апплет как-то. Но как?

Есть ли способ запустить апплет Java на Chrome или Firefox?

Нет. Апплеты больше не поддерживаются в Firefox или Chrome.

Firefox больше не обеспечивает поддержку NPAPI (технология, необходимая для Java-апплетов)

По состоянию на сентябрь 2018 года Firefox больше не предлагает версию, которая поддерживает NPAPI, технологию, необходимую для запуска апплетов Java. Ява Плагин для веб-браузеров опирается на кроссплатформенный плагин архитектура NPAPI, которая поддерживалась всеми основными веб-браузерами на протяжении более десяти лет. 64-битная версия Firefox никогда не поддерживалась NPAPI и Firefox версии 52ESR являются последним выпуском, который поддерживает технология. Это ниже базовой линии безопасности, и больше не поддерживается.

Chrome больше не поддерживает NPAPI (технология, необходимая для апплетов Java)

Плагин Java для веб-браузеров опирается на кроссплатформенную архитектуру плагинов NPAPI, которая поддерживается всеми основными веб-браузерами уже более десяти лет. Google Chrome версии 45 и выше прекратил поддержку NPAPI, поэтому Java Plugin больше не работает в этих браузерах.

Так как мне запустить Java-апплеты?

Используйте AppletViewer из JDK до Java SE 11.

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

СИНТАКСИС

ОПИСАНИЕ

Команда appletviewer подключается к документам или ресурсам обозначается URL-адресами и отображает каждый апплет, на который ссылается документы в собственном окне. Примечание: если документы, указанные URL не ссылаются ни на какие апплеты с OBJECT, EMBED или APPLET тег, то appletviewer ничего не делает. Подробнее о тегах HTML, которые Поддержка appletviewer, см. Теги AppletViewer.

Примечание. Программа просмотра приложений предназначена только для разработки.

В качестве альтернативы прочтите Oracle White Paper (pdf) Переход с Java-апплетов на подключаемые бесплатные Java-технологии , который рекомендует Java Web Start:

Java Web Start была включена в Oracle JRE с 2001 года и является запускается автоматически, когда приложение Java использует Java Web Start Технология загружается впервые. Преобразование апплет к приложению Java Web Start предоставляет возможность запуска и обновить полученное приложение, не полагаясь на веб-браузер

Обратите внимание, что как Java-апплеты, так и Java Web Start были удален полностью в Java SE 11 (выпуск сентябрь 2018). Начиная с этой версии нет (поддерживаемого) способа запуска приложений Applets или Web Start.

Апплет — это программа, написанная на языке программирования Java и встраиваемая в страницу HTML способом, в многом похожим на вставку изображения на страницу. Приложение, которое будет создано в этом учебном курсе, показывает, как выполнять сборку и развертывание апплетов в среде IDE.

*Примечание. *Хотя нет шаблонов проектов, которые специально разработаны для создания апплетов в IDE, их можно легко разработать в проекте Java и упаковать их в веб-проект, как показано в этом учебном курсе.

netbeans stamp 80 74 73

Figure 1. Содержимое этой страницы применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

7.2, 7.3, 7.4, 8.0, версия Java

GlassFish Server Open Source Edition или Контейнер сервлетов Tomcat

3.x или 4.x _ _ версия 7.x или 8.x

Создание или импорт файла исходного кода апплета

В этом разделе вы создадите свой первый апплет. Если у вас уже есть апплет, то указания, приведенные ниже, помогут импортировать его в среду IDE.

Создание проекта Java с нуля или с использованием имеющихся исходных кодов

Выберите команду "Файл" > "Создать проект" (CTRL+SHIFT+N). В области "Категории" выберите "Java".

Выполните одно из следующих действий.

В поле "Имя проекта" введите HelloApplet . В области "Расположение проекта" укажите любую папку на своем компьютере.

Создание файла исходного кода апплета

Нажмите название проекта HelloApplet правой кнопкой мыши и выберите пункт "Свойства", при этом откроется окно "Свойства".

Выберите нужный формат исходных/двоичных файлов для проекта и нажмите ОК.

Примечание. Если выбрана версия JDK 1.6, апплет может не запускаться на компьютерах, на которых установлена предыдущая версия JRE или подключаемого модуля Java для браузера.

Нажмите узел HelloApplet в окне "Проекты" и выберите "Новый" > "Другое" (Ctrl-N).

В области "Категории" выберите "Java". В области "Типы файлов" выберите "Апплет".

Если же нужно использовать визуальные средства для разработки апплета, выберите "Формы Swing GUI" > "Форма JApplet".

В области "Имя класса" введите MyApplet . В поле "Пакет" введите org.me.hello .

Среда IDE создает исходный файл апплет в указанном пакете. Исходный файл апплета открывается в редакторе исходного кода.

Определите класс своего апплета, заменив существующий стандартный код следующим кодом:

В качестве альтернативы, если вместо этого выполняется разработка форма апплета используйте документ Разработка графического интерфейса пользователя Swing в IDE NetBeans для создания аналога следующему:

movie magic quiz design

Подробную информацию о написании апплетов см. в разделеАпплеты Руководства Java TM .

Запуск файла исходного кода апплета

Созданный апплет можно запустить из среды IDE. В этом разделе вы узнаете, как это сделать.

Сборка и выполнение исходного файла апплета

Щелкните правой кнопкой мыши узел файла MyApplet.java в окне 'Проекты' и выберите в контекстном меню команду 'Запустить файл'. В папке сборки создается файл запуска MyApplet.html со встроенным апплетом. Его можно увидеть, перейдя в окно "Файлы" (CTRL+2):

built project files

Апплет запускается в программе просмотра апплета.

appletviewer

Формы апплета также отображаются в программе просмотра апплета.

movie magic quiz

Внедрение апплета в веб-приложение

Итак, создание апплета завершено. Теперь необходимо предоставить к нему доступ пользователю. Для этого необходимо создать веб-приложение, добавить апплет JAR в путь к его классам, а затем добавить тег апплета в файл HTML веб-приложения.

Создание веб-проекта

Выберите команду "Файл" > "Новый проект".

В области "Имя проекта" введите HelloWebApplet .

Добавление файла JAR апплета в веб-проект

Когда нужно включить файл апплета в формате JAR в веб-проект, можно добавить либо проект Java, содержащий файл JAR file, либо добавить сам файл JAR. Можно выбрать любой из вариантов, однако следует учесть, что при добавлении проекта Java в веб-проект среда IDE запускает сборку апплета при каждой сборке веб-приложения. Таким образом, если вы изменяете апплет в проекте Java, среда IDE собирает новую версию апплета каждый раз при сборке веб-проекта. С другой стороны, если файл JAR апплета не находится в проекте IDE NetBeans, исходный файл апплета не перестраивается при построении веб-проекта.

Примечание. Если на этом этапе используется проект HelloApplet в IDE файл HelloApplet.jar отсутствует. Это нормально. Файл HelloApplet.jar будет собран при сборке проекта HelloWebApplet .

В окне 'Проекты' щелкните правой кнопкой мыши узел проекта HelloWebApplet и выберите 'Свойства' в контекстном меню.

Выберите категорию 'Упаковка'.

Выполните одно из следующих действий.

Если апплет находится в проекте Java, нажмите 'Добавить проект' и найдите каталог этого проекта Java. Щелкните Add JAR/Folder ("Добавить JAR/Папку").

Примечание. Проекты IDE помечены специальным значком 'Проект NetBeans IDE'.

Если используемый файл апплета JAR не входит в проект IDE, нажмите 'Добавить файл/папку' и найдите папку с файлом JAR. Нажмите 'Выбрать'.

По умолчанию файл JAR апплета будет скопирован в библиотеку страницы веб-приложения (папку build/web ). Папка build/web является корневым каталогом приложения и отображается в таблице как " / " в переменной Path в столбце WAR. Вы можете изменить расположение апплета в WAR. Для этого введите новое расположение апплета в переменной Path в столбце WAR.

Нажмите ОК, чтобы закрыть диалоговое окно 'Свойства проекта'.

При сборке проекта HelloWebApplet с помощью команды 'Выполнить > Собрать проект (HelloWebApplet)' главного меню IDE JAR-файл апплета создается в исходном проекте HelloApplet и упаковывается в WAR-файл проекта HelloWebApplet . Он также добавляется в папку build/web . Следить за процессом можно в окне "Результат", а конечный результат можно посмотреть в окне "Файлы".

helloapplet jar in files small

Создание и запуск файла JSP или HTML

Выполните одно из следующих действий.

Если необходимо встроить апплет в файл JSP, дважды нажмите стандартный файл index.jsp в окне "Свойства". Этот файл создается средой IDE при создании веб-проекта. Файл открывается в редакторе исходного кода.

Встройте апплет в файл, добавив следующий тег апплета в любом месте в рамках тегов <body> </body> .

Примечания.

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

org.me.hello.MyApplet - полное имя класса апплета.

HelloApplet.jar - файл JAR, содержащий апплет.

В окне "Проекты" щелкните узел JSP или HTML правой кнопкой мыши и в контекстном меню выберите "Выполнить файл".

Сервер развертывает файл JSP или HTML в браузере среды IDE, установленном по умолчанию.

Вы должны получить результат, аналогичный показанному на иллюстрации (после того как вы разрешили запуск приложения нажатием на кнопку 'Выполнить' в диалоговом окне 'Предупреждение системы безопасности'):

appletinbrowser small

В случае работы с формами апплетов ваш результат будет похож на следующий:

Читайте также: