如何在JNLP执行期间检测功能是否可用?

时间:2008-08-29 02:13:18

标签: java security deployment permissions jnlp

我有一个确实应该安装的应用程序,但在使用JNLP部署时可以正常工作。

但是,似乎某些Java函数(如Runtime.exec)无法使用默认安全选项。

因此,我希望disable依赖于此类功能的UI功能。

所以我的问题是,如何在运行时检测某些功能是否可用?

案例研究当然是Runtime.exec

3 个答案:

答案 0 :(得分:1)

如果您使用checkExec方法执行Exec,则需要SecurityManager

答案 1 :(得分:1)

我还发现将以下内容添加到JNLP文件中:

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

签署JAR文件允许该应用运行Runtime.exec所需的所有权限。

答案 2 :(得分:0)

对于Runtime.exec的特定示例,SecurityManager类上有一个方法checkExec(String cmd),它将抛出一个异常,可以捕获该异常以确定是否可以执行必要的命令。有关更多信息,请参阅Runtime.exec的javadoc和SecurityManager.checkExec。

更一般的情况需要创建一个Permission对象,表示正在检查的任务并运行SecurityManager的checkPermission方法。