JApplet в файле Jar может быть запущен только из HTML-файла, содержащегося в файле Jar - PullRequest
0 голосов
/ 17 июля 2011

У меня есть JApplet, основанный на приложении. Мне нужно это прочитать в текстовом файле, содержащем все его данные. Поэтому я вставил его в файл Jar, и все стало счастливым в AppletViewer.

К сожалению, не все так хорошо в мире браузеров.

Когда я пытаюсь запустить апплет в браузере с html-страницы, которой нет в jar, я получаю старое доброе: java.security.AccessControlException: доступ запрещен (java.io.FilePermission

(затем в нем указывается расположение файла jar в моей файловой системе и адрес ресурса!)

Но если я открою файл jar в zip Extractor / Viewer, например, в winzip, и открою страницу, которая запускает апплет (который я вставил в jar), он будет работать нормально. Как и ожидалось, он может получить доступ только к ресурсам, имеющим один и тот же хост, который, как представляется, в этом случае подходит непосредственно к файлу JAR.

ТАК, мой вопрос WTF? Могу ли я открыть html-файл внутри jar-файла из браузера ... даже внутри iframe или чего-нибудь еще, если он не испортит разрешения.

Или я могу вызвать апплет со страницы html вне jar? Я не использую JNLP прямо сейчас, потому что я хотел собрать прототип апплета как можно скорее.

<applet code = 'CatalogApplet' 
archive = 'ContactCatalog.jar', 
width = 1000, 
height = 800 />

Является ли HTML-вызов апплета.

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

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Файл должен быть доступен через URL, а не FileInputStream. Используйте это, чтобы получить URL:

URL urlToText = this.getClass().getResource("path/to/the.html");

Это будет работать в апплете в песочнице.

0 голосов
/ 17 июля 2011

чистый способ: упаковать ваши файлы ".class" в банку.У вас есть html-файл вне jar, который ссылается на ваш jar внутри тега апплета.если вашему апплету требуется доступ к пользовательской файловой системе, то правильный путь - подписать флягу апплета.см http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

...