2013-08-20 2 views
2

У меня проблемы с запуском Java-апплетов локально, то есть файлы классов находятся в локальной файловой системе, а не на сервере. Следующий примерЛокальные апплеты Java не показаны в Firefox

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <body> 
     <applet code="Java10Test.class" 
      width=200 
      height=200 
      codebase="http://www.cis.upenn.edu/~matuszek/General/JavaVersionTests/" 
      > 
     </applet> 
     Text ... 
    </body> 
</html> 

хорошо работает с Firefox 23 и Oracle Java 7u25. Но это не работает, если я загружаю Java10Test.class на свой локальный компьютер и помещаю его в ту же папку, что и .html, независимо от того, какую кодовую базу я использую. Я пробовал codebase="." и codebase="file:///pathToTheFolder" без успеха. Firefox даже не резервирует пространство 200x200 для апплета. Java также не запускается в фоновом режиме (консоль Java не открывается, как и для всех других апплетов), то есть это не проблема безопасности Java. Сообщения об ошибках/ошибках отсутствуют.

Локальная версия работает в Chrome без проблем. Поведение воспроизводится на разных машинах (Mac/Linux).

Каков правильный способ использования апплетов локально в Firefox? Мне это нужно для системы без доступа в Интернет.

ответ

2

Это known bug in Firefox 23. Он должен блокировать использование локально небезопасных базы кода, как .. но случайно блоки других локальных путей тоже.

Известный в настоящее время karounds являются:

  • набор security.fileuri.strict_origin_policy=false в about:config
  • использовать локальный веб-сервер вместо локальных файлов, как это предлагается в другой ответ
2

Каков правильный способ использования апплетов локально в Firefox?

Запустите их с сервера на локальном хосте (например, установите Apache), и они должны показывать то же поведение, что и в сети.

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

Я бы предположил, что это связано с безопасностью. IE уже давно запрашивает HTML-скрипт, когда он загружается из локальной файловой системы. В общем, «сеть» считается более безопасной средой, чем ваши собственные диски.

Кстати, я запустил FF и отметил, что он недавно начал сбой при запуске Deployment Toolkit Script, используемого для встраивания апплетов и запуска приложений JWS. Я не осознавал это просто (и полностью), игнорируя «локальные (unjar'd, unsigned) элементы апплета», пока я не проверил ваши. Тот факт, что он игнорирует их без предупреждения или подсказки, - это ... отключение, по крайней мере, для разработчиков, которым приходится писать или поддерживать апплеты. :(


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

+0

Хорошая идея. Но все же было бы интересно, почему локальный файл класса не используется должным образом. – porst17

+0

См. Edit ....... –

+0

Я узнал, что это известная ошибка в FF 23. – porst17

Смежные вопросы