Copier / Coller entre une applet Java et le presse-papier

J'ai parfois des soucis lorsque l'essaye de copier le contenu d'une applet Java (utilisées par exemple dans IBM Tivoli Identity Manager pour définir les workflows).

Impossible de copier le contenu dans un programme externe, via le presse-papiers (clipboard en anglais).

La copie dans l'autre sens n'est pas possible non plus.

Pour résoudre ce problème, il faut ajouter une ligne dans le fichier java.policy. Souci sur ma machine : j'ai une petite dizaine de ces fichiers, en fonction des mises à jour des JVM.

find / -name java.policy
/etc/java-6-openjdk/security/java.policy
/etc/java-7-openjdk/security/java.policy
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/java.policy
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/java.policy
/usr/lib/jvm/java-6-oracle/jre/lib/security/java.policy

Pour éviter de modifier tous ces fichiers, et garder la fonctionnalité quelle que soit la version de JVM installée, on peut créer un fichier java.policy dans le répertoire $HOME/.java, à partir d'un fichier existant :

cd /usr/lib/jvm
cp java-6-oracle/jre/lib/security/java.policy $HOME/.java

On ajoute ensuite les lignes à la fin, juste avant l'accolade de fin :

    permission java.util.PropertyPermission "java.vm.vendor", "read";
    permission java.util.PropertyPermission "java.vm.name", "read";


//Used to give access to clipboard (copy / paste)
        permission java.awt.AWTPermission "accessClipboard";

};

Si on lance une applet on peut ensuite vérifier que ça fonctionne. Ce qui évite de recopier bêtement des lignes à la main...

 

Catégorie: 

Tag: