Я занимаюсь разработкой нестандартного приложения.По сути, это SWT-приложение, использующее встроенный браузер Mozilla (mozilla-interfaces-1.9.2.12.jar, mozilla-glue-1.9.2.12.jar), которое должно отображать HTML-страницы, содержащие апплеты (также разработанные мной).Эти апплеты подписаны, а сертификаты импортированы в хранилище ключей.При запуске апплетов в стандартном автономном браузере Mozilla все работает хорошо.
Даже при нормальном запуске моего SWT-приложения (я имею в виду автономное настольное Java-приложение без SecurityManager) все работает просто отлично - встроенный браузер отображается и отображает HTML-страницы сapplets.
Однако у меня возникают проблемы, как только я пытаюсь запустить это приложение через Java Web Start (jnlp).Я полагаю, что мой jnlp четко определен, он содержит все теги, которые я смог найти в интернет-дискуссиях.Так есть например
<security>
<all-permissions/>
</security>
и т. Д.Мое приложение SWT, соответственновсе его jar-файлы подписаны (тот же сертификат, который использовался для апплетов).Он запускается нормально, он выполняет операции, которые не будут разрешены без всех разрешений и подписи, он даже показывает окна SWT (таким образом, сам SWT работает нормально), но когда он должен показывать встроенный браузер, я получаю исключение UnsatisfiedLinkException.Забавно, что когда я создаю файл .java.policy с определенным набором разрешений, он начинает работать нормально, апплеты тоже работают.Играя роль Шерлока Холмса Я понял, что этот набор разрешений содержит
java.io.FilePermission
java.lang.RuntimePermission
+ permissions that are neccessary for applets.
Имеет ли это смысл для кого-либо из вас?Похоже, что браузер SWT Mozilla работает в каком-то особенном SecurityManager, который игнорирует тот факт, что само приложение подписано, а также есть тег в моем файле jnlp.
Когда я загружаю страницы без апплетов, все еще упоминались два разрешения:обязательно отображать окно браузера вообще.Я хотел бы запустить это приложение без каких-либо файлов .java.policy и без дополнительных настроек на стороне пользователя.Я ценю каждый совет.
Заранее спасибо.
Войта