Spec-Zone .ru
спецификации, руководства, описания, API
След: Средства защиты в Java SE
Урок: Подписание Кода и Предоставление Этого Полномочия
Раздел: Шаги для Получателя Кода
Наблюдайте Ограниченное Приложение
Домашняя страница > Средства защиты в Java SE > Подписание Кода и Предоставления Этого Полномочия

Наблюдайте Ограниченное Приложение

Последняя часть Быстрого Тура по Управлению уроком Приложений показывает, как приложение может быть запущено под менеджером безопасности, вызывая интерпретатор с новым -Djava.security.manager параметр командной строки. Но что, если приложение, которое будет вызвано, находится в файле JAR?

Одна из опций интерпретатора -cp (для пути class) опция, которая позволяет Вам определять путь поиска для классов приложений и ресурсов. Поэтому, чтобы выполниться Count приложение в sCount.jar Файл JAR, определяя файл C:\TestData\data как его параметр, можно ввести следующую команду в то время как в каталоге, содержащем sCount.jar:

java -cp sCount.jar Count C:\TestData\data

Чтобы выполнить приложение с менеджером безопасности, добавить -Djava.security.manager, как показано ниже:

java -Djava.security.manager -cp sCount.jar Count C:\TestData\data

Важный:  Когда Вы выполните эту команду, Ваш интерпретатор Java выдаст исключение, показанное ниже:

Exception in thread "main" java.security.AccessControlException:
access denied (java.io.FilePermission C:\TestData\data read)
    at java.security.AccessControlContext.checkPermission(Compiled Code)
    at java.security.AccessController.checkPermission(Compiled Code)
    at java.lang.SecurityManager.checkPermission(Compiled Code)
    at java.lang.SecurityManager.checkRead(Compiled Code)
    at java.io.FileInputStream.<init>(Compiled Code)
    at Count.main(Compiled Code)

В этом примере, AccessControlException сообщаемый, что count у приложения нет разрешения, чтобы считать файл C:\TestData\data. Ваш интерпретатор, повышенный это исключение, потому что это не будет позволять приложению, работающему под менеджером безопасности читать файл или получать доступ к другим ресурсам, если у этого не будет явного разрешения, чтобы сделать так - обычно определенный в a grant оператор содержится в a policy файл.



Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Шаги для Получателя Кода
Следующая страница: Импортируйте Сертификат как Доверяемый Сертификат