Spec-Zone .ru
спецификации, руководства, описания, API
|
Последняя часть Быстрого Тура по Управлению уроком Приложений показывает, как приложение может быть запущено под менеджером безопасности, вызывая интерпретатор с новым -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
файл.