Domanda

Ho un'applicazione che davvero deve essere installato, ma non funziona bene quando distribuito utilizzando JNLP.

Tuttavia, sembrerebbe che alcune funzioni Java come Runtime.exec non funzionano utilizzando il valore predefinito di opzioni di sicurezza.

Vorrei, pertanto, disattivare Funzionalità dell'interfaccia utente che si basa su tali funzioni.

Quindi la mia domanda è, come faccio a rilevare in fase di runtime se alcune funzioni non sono disponibili?

Il caso di studio, qui, ovviamente, è Runtime.exec.

È stato utile?

Soluzione

Vuoi chiedere un SecurityManager se si dispone di Exec destra con la checkExec metodo.

Altri suggerimenti

Ho anche scoperto che aggiungere il seguente al file JNLP:

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

E la firma di un file JAR che permette all'applicazione di eseguire con tutte le autorizzazioni necessarie per Runtime.exec.

Per l'esempio specifico di Runtime.exec c'è un metodo per il SecurityManager classe checkExec(String cmd) che genererà un'eccezione che può essere preso per determinare se il comando necessario può essere eseguito.Per ulteriori informazioni, vedere la javadoc per la fase di esecuzione.exec e SecurityManager.checkExec.

Il caso più generale richiede la creazione di un oggetto di Autorizzazione che rappresentano il compito di essere controllato e l'esecuzione di SecurityManager del checkPermission metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top