Pour les applications Java:
- En fait pour le boîtier JDownloader, c'est une conception modulaire. L'icône de la barre des tâches est un plugin qui peut être désactivé à partir de: - JDownloader → Modules complémentaires → Gestionnaire de modules complémentaires → Extensions → Décochez la case Activer pour JD Light Tray 
- Pour les applications Java cas général, il est possible d'utiliser le gestionnaire de sécurité Java en écrivant une règle de politique personnalisée. - 
- Créer un - java.policyfichier dans- ~/.jdownloadercontient:
 - grant codeBase "file:/home/user/.jdownloader/-" {
// full access
//    permission java.security.AllPermission;
// AWTPermission full or only selected elements from it
//    permission java.awt.AWTPermission "*";
    permission java.awt.AWTPermission "accessClipboard";
    permission java.awt.AWTPermission "accessEventQueue";
//    permission java.awt.AWTPermission "accessSystemTray";
    permission java.awt.AWTPermission "createRobot";
    permission java.awt.AWTPermission "fullScreenExclusive";
    permission java.awt.AWTPermission "listenToAllAWTEvents";
    permission java.awt.AWTPermission "readDisplayPixels";
    permission java.awt.AWTPermission "replaceKeyboardFocusManager";
    permission java.awt.AWTPermission "setAppletStub";
    permission java.awt.AWTPermission "setWindowAlwaysOnTop";
    permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
    permission java.awt.AWTPermission "toolkitModality";
    permission java.awt.AWTPermission "watchMousePointer";
// Added by try and learn
    permission java.io.FilePermission "/-", "read,write,delete";
    permission java.util.PropertyPermission "*", "read,write";
    permission java.util.logging.LoggingPermission "control";
    permission java.lang.RuntimePermission "*";
    permission java.net.NetPermission "*";
    permission java.security.SecurityPermission "*";
    permission javax.net.ssl.SSLPermission "*";
    permission java.net.SocketPermission "*", "connect,resolve";
    permission java.lang.reflect.ReflectPermission "*";
};
 
- Modifier le - jdownloaderscript de lancement pour utiliser une stratégie personnalisée
 - sudo nano /usr/bin/jdownloader
 - Ajouter: - -Djava.security.manager -Djava.security.policy=java.policyà l'appel de commande java:
 - exec java ${JAVA_OPTIONS}  -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
 
 
Ce sont les règles minimales qui m'ont permis de lancer jdownloader. Vous devrez peut-être ajouter d'autres autorisations. Parce qu'il n'y a pas d' denyoption, vous devez écrire toutes les grantrègles nécessaires .
Les références:
BTW, essayez de commenter l'une des règles en ajoutant //au début de la ligne; Vous pouvez donc voir à quoi ressemble l'erreur des autorisations refusées. Il vous indique quelle autorisation vous devez ajouter. Notez également que j'en ai utilisé beaucoup -et que *j'essaie d'étendre les règles car je cherche une solution rapide (par défaut c'était AllPermissionquand même) et je ne cherche pas à emprisonner l'application.
Voici un modèle pour commencer, essayant d'accorder toutes les autorisations possibles:
grant codeBase "file:/home/user/.jdownloader/-" {
//    permission java.security.AllPermission;
//    permission java.awt.AWTPermission "*";
    permission java.awt.AWTPermission "accessClipboard";
    permission java.awt.AWTPermission "accessEventQueue";
//    permission java.awt.AWTPermission "accessSystemTray";
    permission java.awt.AWTPermission "createRobot";
    permission java.awt.AWTPermission "fullScreenExclusive";
    permission java.awt.AWTPermission "listenToAllAWTEvents";
    permission java.awt.AWTPermission "readDisplayPixels";
    permission java.awt.AWTPermission "replaceKeyboardFocusManager";
    permission java.awt.AWTPermission "setAppletStub";
    permission java.awt.AWTPermission "setWindowAlwaysOnTop";
    permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
    permission java.awt.AWTPermission "toolkitModality";
    permission java.awt.AWTPermission "watchMousePointer";
    permission javax.sound.sampled.AudioPermission "*";
    permission javax.security.auth.AuthPermission "*";
//    permission javax.security.auth.kerberos.DelegationPermission "";
    permission javax.xml.bind.JAXBPermission "*";
    permission java.nio.file.LinkPermission "hard";
    permission java.nio.file.LinkPermission "symbolic";
    permission java.util.logging.LoggingPermission "control";
//    permission java.lang.management.ManagementPermission "*";
    permission javax.management.MBeanServerPermission "*";
    permission javax.management.MBeanTrustPermission "*";
    permission java.net.NetPermission "*";
    permission java.util.PropertyPermission "*", "read,write";
    permission java.lang.reflect.ReflectPermission "*";
    permission java.lang.RuntimePermission "*";
    permission java.security.SecurityPermission "*";
    permission java.io.SerializablePermission "*";
    permission java.sql.SQLPermission "*";
    permission javax.net.ssl.SSLPermission "*";
    permission javax.management.remote.SubjectDelegationPermission "*";
    permission javax.xml.ws.WebServicePermission "*";
//    permission  "*";
    permission java.io.FilePermission "/-", "read,write,execute,delete,readlink";
    permission javax.management.MBeanPermission "*", "*";
//    permission javax.security.auth.PrivateCredentialPermission "", "read";
    permission javax.security.auth.kerberos.ServicePermission "*", "initiate,accept";
    permission java.net.SocketPermission "*", "accept,connect,listen,resolve";
    permission java.net.URLPermission "*";
};
Remarque :
Java Policy Tools est un outil d'interface graphique pour modifier les fichiers de stratégie. Il est plus facile de découvrir toutes les options disponibles dans la boîte de dépôt. Il doit être déjà installé avec le package Java.
