|
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 файл.