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

然而,似乎有些 Java 函数,例如 Runtime.exec 使用默认安全选项不起作用。

因此我愿意 禁用 依赖于此类函数的 UI 功能。

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

当然,这里的案例研究是 Runtime.exec.

有帮助吗?

解决方案

您想询问 安全管理器 如果你有使用 checkExec 方法的 Exec 权限。

其他提示

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

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

对 JAR 文件进行签名允许应用程序以所需的所有权限运行 Runtime.exec.

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top