如何在 JNLP 执行期间检测函数是否可用?
-
09-06-2019 - |
题
我有一个应用程序 真的 应该安装,但使用 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 方法。
不隶属于 StackOverflow