Frage

Ich habe eine Anwendung, die Wirklich sollte installiert werden, funktioniert aber einwandfrei, wenn es mit JNLP bereitgestellt wird.

Es scheint jedoch, dass einige Java-Funktionen wie z Runtime.exec funktionieren nicht mit den Standardsicherheitsoptionen.

Ich möchte daher deaktivieren UI-Funktionalität, die auf solchen Funktionen basiert.

Meine Frage ist also: Wie erkenne ich zur Laufzeit, ob bestimmte Funktionen verfügbar sind oder nicht?

Die Fallstudie hier ist natürlich Runtime.exec.

War es hilfreich?

Lösung

Sie möchten die fragen Sicherheitsmanager wenn Sie Exec-Recht mit der checkExec-Methode haben.

Andere Tipps

Ich habe auch festgestellt, dass Folgendes zur JNLP-Datei hinzugefügt wurde:

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

Und durch das Signieren der JAR-Datei kann die App mit allen erforderlichen Berechtigungen ausgeführt werden Runtime.exec.

Für das spezifische Beispiel von Runtime.exec gibt es eine Methode in der SecurityManager-Klasse checkExec(String cmd), die eine Ausnahme auslöst, die abgefangen werden kann, um festzustellen, ob der erforderliche Befehl ausgeführt werden kann.Weitere Informationen finden Sie im Javadoc für Runtime.exec und SecurityManager.checkExec.

Der allgemeinere Fall erfordert die Erstellung eines Permission-Objekts, das die zu prüfende Aufgabe darstellt, und die Ausführung der checkPermission-Methode von SecurityManager.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top