Как определить, доступна ли функция во время выполнения JNLP? - PullRequest
0 голосов
/ 29 августа 2008

У меня есть приложение, которое действительно должно быть установлено, но работает нормально при развертывании с использованием JNLP.

Однако может показаться, что некоторые функции Java, такие как Runtime.exec, не работают с использованием параметров безопасности по умолчанию.

Я бы хотел поэтому отключить функциональность пользовательского интерфейса, которая зависит от таких функций.

Итак, мой вопрос, как определить во время выполнения, доступны ли определенные функции или нет?

Тематическое исследование, здесь, конечно, Runtime.exec.

Ответы [ 3 ]

1 голос
/ 29 августа 2008

Я также обнаружил, что добавление следующего к файлу JNLP:

<security>
    <all-permissions/>
</security>

А подписание файла JAR позволяет приложению работать со всеми разрешениями, необходимыми для Runtime.exec.

1 голос
/ 29 августа 2008

Вы хотите спросить у SecurityManager , имеете ли вы право Exec с методом checkExec.

0 голосов
/ 29 августа 2008

Для конкретного примера Runtime.exec в классе SecurityManager есть метод checkExec (String cmd), который генерирует исключение, которое может быть перехвачено, чтобы определить, может ли быть выполнена необходимая команда. Для получения дополнительной информации см. Javadoc для Runtime.exec и SecurityManager.checkExec.

В более общем случае требуется создать объект Permission, представляющий проверяемую задачу, и запустить метод checkPermission SecurityManager.

...