本当にインストールする必要があるアプリケーションがありますが、JNLP を使用してデプロイすると正常に動作します。
Runtime.exec
ただし、デフォルトのセキュリティ オプションを使用すると、などの一部の Java 関数が機能しないようです。
したがって、そのような機能に依存する UI 機能を 無効にしたいと考えています。
だから私の質問は、特定の機能が利用可能かどうかを実行時にどのように検出するのですか?
もちろん、ここでのケーススタディはRuntime.exec
.
本当にインストールする必要があるアプリケーションがありますが、JNLP を使用してデプロイすると正常に動作します。
Runtime.exec
ただし、デフォルトのセキュリティ オプションを使用すると、などの一部の Java 関数が機能しないようです。
したがって、そのような機能に依存する UI 機能を 無効にしたいと考えています。
だから私の質問は、特定の機能が利用可能かどうかを実行時にどのように検出するのですか?
もちろん、ここでのケーススタディはRuntime.exec
.
checkExec メソッドで Exec 権限を持っているかどうかをSecurityManagerに尋ねたいとします。
また、JNLP ファイルに以下を追加することもわかりました。
<security>
<all-permissions/>
</security>
また、JAR ファイルに署名すると、アプリケーションに必要なすべての権限でアプリを実行できますRuntime.exec
。
Runtime.exec の特定の例では、必要なコマンドを実行できるかどうかを判断するためにキャッチできる例外をスローする SecurityManager クラス checkExec(String cmd) のメソッドがあります。詳細については、Runtime.exec および SecurityManager.checkExec の javadoc を参照してください。
より一般的なケースでは、チェック対象のタスクを表す Permission オブジェクトを作成し、SecurityManager の checkPermission メソッドを実行する必要があります。