Ошибка Java: "Настройки безопасности заблокировали запуск локального приложения"

Я пытаюсь запустить этот простой код HelloWorld, написанный на Java из моего браузера (Chrome):

public class HelloWorld extends JApplet {
public void init() {
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                JLabel lbl = new JLabel("Hello World");
                add(lbl);
            }
        });
    }
    catch (Exception e) {
        System.err.println("createGUI didn't complete successfully");
    }
}

Я скомпилировал его с NetBeans, а затем создал проект WebApplication. Код HTML, который запускает апплет:

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <p><applet code="HelloWorld" archive="applet_HelloWorld.jar"  width="590" height="530"></applet></p>
    </body>
</html>

Если вы запускаете апплет из NetBeans, он работает. Но когда я запускаю HTML-код, дважды щелкнув его, в браузере появится следующее сообщение:

Настройки безопасности заблокировали запуск локального приложения.

Я пробовал с Internet Explorer и Firefox, но ничего.

Это сообщение появилось после последнего обновления Java. Где проблема?

Ответ 1

После прочтения Обновления Java 7 Update 21 Подробнее

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

.. Мне было интересно, как это пойдет для бесплатных файлов классов - "самых простых" апплетов всех.

Локальная файловая система

Dialog: Your security settings have blocked a local application from running
Настройки безопасности заблокировали локальное приложение из

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


Обратите внимание, что небольшая причуда JRE создала только то, что в точке 3.

  • Загрузите страницу апплета, чтобы увидеть сломанный символ апплета, который ведет к пустой консоли.
    Откройте настройки Java и установите уровень Средний.
    Закрыть настройки браузера и Java.
  • Загрузите страницу апплета, чтобы увидеть апплет.
    Откройте настройки Java и установите уровень Высокий.
    Закрыть настройки браузера и Java.
  • Загрузите страницу апплета, чтобы увидеть сломанный символ апплета & в диалоговом окне выше.

Интернет

Если вы загрузите простой апплет (файл свободного класса), увиденный в этом изменчивой аплет-версии от интернет - который имеет элемент applet:

<applet
    code="PlafChanger.class"
    codebase="."
    alt="Pluggable Look'n'Feel Changer appears here if Java is enabled"
    width='100%'
    height='250'>
<p>Pluggable Look'n'Feel Changer appears here in a Java capable browser.</p>
</applet>

Он также успешно загружается. Имея в виду, что: -

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

Описание настроек безопасности

По состоянию обновления Java 7 51.

  • Очень высокий. Самый безопасный параметр. Разрешено запускать только Java-приложения, идентифицированные сертификатом без истечения срока действия доверенного органа.
  • Высокий (рекомендуется минимум): Java-приложения, идентифицированные сертификатом из доверенного органа, будут разрешены для запуска.
  • Средний. Все Java-приложения могут запускаться после представления запроса безопасности.

Ответ 2

Сегодня я столкнулся с такой же проблемой, и мне удалось исправить эту проблему, изменив параметры безопасности на панели управления Java с HIGH до MEDIUM.

Ну, на самом деле не рекомендуется устанавливать настройку безопасности Java для MEDIUM, поскольку это позволит потенциально вредоносному программному обеспечению работать в вашей системе и не блокироваться. Поэтому я предлагаю после запуска апплета вы можете изменить настройку на HIGH.

Местоположение панели управления Java

Измените настройку панели управления

Ответ 3

Если вы используете Linux, эти параметры доступны с помощью /usr/bin/jcontrol (или вашего пути, чтобы получить текущие инструменты Java). Вы также можете редактировать файлы в ~/.java/deployment/deployment.properties, чтобы установить "deployment.security.level = MEDIUM".

Удивительно, но эта информация недоступна на веб-сайте Oracle. Я скучаю по java.sun.com...

Ответ 4

  • Перейдите в Панель управления
  • Дважды щелкните по Java
  • Откройте вкладку "Безопасность"
  • Выберите Medium
  • Нажмите "Применить"
  • Перезагрузите веб-браузер.

Что это!

enter image description here

Ответ 5

Если у вас нет среднего уровня безопасности, вы должны добавить свое приложение в Список исключений сайтов (панель управления Java → вкладка "Безопасность" ).

  • Откройте ваш апплет в браузере и скопируйте содержимое своей адресной строки. screenshot of applet's address in the address bar
  • Перейдите в Панель управления → Панель управления Java → вкладка "Безопасность" и нажмите кнопку Edit Site List.... screenshot of Java Control Panel's Security tab

  • Нажмите кнопку Add, введите свой путь и нажмите Enter. screenshot of Exception Site List

  • Нажмите Continue в появившемся предупреждении безопасности. screenshot of Security Warning - FILE Location alert prompt

  • Откройте апплет еще раз и не забудьте нажать Run во всплывающем окне. снимок экрана с предупреждением о безопасности

Ответ 6

Если вы похожи на меня, чья панель управления Java не показывает слайдер Security под вкладкой "Безопасность", чтобы изменить уровень безопасности с High на Medium, выполните следующие инструкции: Известная ошибка Java: слайдер безопасности не отображается.


Симптомы:

После установки флажок для включения/выключения Java и слайдера уровня безопасности не отображается на вкладке Безопасность панели управления Java. Это может произойти с 7u10 и выше.

Причина

Это связано с конфликтом, который имеет Java 7u10 и выше с автономными установками JavaFX. Пример. Если установлены Java 7u5 и JavaFX 2.1.1, и если Java обновлена ​​до 7u11, панель управления Java не отображает флажок или слайдер безопасности.

Разрешение

Перед установкой Java 7u10 и выше рекомендуется удалить все версии Java и JavaFX.
Для решения этой проблемы выполните следующие действия.  1. Удалите все версии Java и JavaFX через панель управления Windows Uninstall. Инструкции по удалению Java.
 2. Запустите утилиту удаления Microsoft, чтобы восстановить поврежденные ключи реестра, которые не позволяют полностью удалить программы или заблокировать новые установки и обновления.
 3. Загрузите и установите пакет автономный установщик.

Ответ 7

Java-апплеты создают угрозу безопасности, поэтому отключены в большинстве современных браузеров. Вы должны снизить безопасность для ее запуска. Для этого существует руководство от Oracle.

Ответ 8

  • Начиная с Java 8, на вкладке "Безопасность" в Java нет настройки "среднего" риска

  • Вы будете получать эту ошибку до тех пор, пока не вернетесь к более старой версии Java (но, предположим, Java 7 все-таки достиг конца жизни).

  • Установите 32-битную и 64-битную версию, потому что браузеры по-прежнему 32-битные, даже на 64-битной машине, 64-битной ОС

Ответ 9

Моим вопросом было запустить файл portecle.jnlp локально с помощью Java8.

Что сработало для меня, было

  • Запустить программы → Java → Настроить Java...
  • Перейдите в раздел Безопасность → Изменить список сайтов...
  • Добавить http://portecle.sourceforce.net
  • Запустите javaws portecle.jnlp в приглашении CMD

На шаге 3 вы можете попробовать также добавить файл:///c:/path/portecle.jnlp, но это дополнение не помогло мне.