Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Можно ли обращаться (чтение/запись) к файлам из апплета?

#java #applet


Разбираюсь с апплетами. Написал апплет, который должен сохранять своё состояние.
Делаю это с помощью класса Properties. Файл свойств находиться по адресу C:\Users\UserName\.ShapeAppletData\.properties
Когда тестирую апплет в IDE (Eclipse) всё работает. Когда запускаю в браузере (Mozilla)
появляется исключение InvocationTargetException. Вывел сообщение об ошибке, оно такое:


  acess denied ("java.util.PropertyPermission" "user.home" "read")


Почему возникает такая ошибка? Может ли апплет обращаться к файлам на компьютере?
Как управлять разрешением на чтение/запись апплетом?

UPD :
Локализовал ошибку. Ошибка возникает на этой строчке кода:

userDir = System.getProperty("user.home");

    


Ответы

Ответ 1



Sun в свое время постарались сделать технологию апплетов безопасной для конечного пользователя. Обычные Java-апплеты запускаются в песочнице с ограниченными возможностями. Вы можете подписать апплет сертификатом от доверенного издателя и, если пользователь примет сертификат и подтвердит запрос полномочий, запустить его вне песочницы. В песочнице вам доступны: сетевые подключения на тот же хост и порт, откуда был получен апплет (у апплетов, загруженных с локальной файловой системы, ограничений нет); загрузка HTML-документов вызов публичных методов апплетов-соседей по странице; чтение системных свойств: java.class.version java.vendor java.vendor.url java.version os.name os.arch os.version file.separator path.separator line.separator и некоторых других при старте через JNLP. В песочнице в общем случае вы НЕ можете: обращаться к файловой системе (доступно через JNLP); запускать процессы; использовать буфер обмена (доступно через JNLP); отправлять задания на принтеры (доступно через JNLP); загружать нативные библиотеки (JNI); подменять SecurityManager; создавать альтернативные загрузчики классов; читать некоторые системные свойства: java.class.path java.home user.dir user.home user.name

Комментариев нет:

Отправить комментарий