Получение доступа к буферу обмена в апплете для Ubuntu Firefox - PullRequest
4 голосов
/ 01 апреля 2011

Я использую 64-битную Ubuntu с апплетом в Firefox. Когда апплет пытается прочитать буфер обмена. Я получаю эту ошибку:

Error: uncaught exception: LiveConnectPermissionNeeded access denied (java.awt.AWTPermission accessClipboard)

Я хотел бы включить доступ к буферу обмена для этого конкретного апплета. Есть идеи как? Я использую плагин IcedTea. Это прекрасно работает с IE в Windows (с использованием плагина JDK6).

Я попытался установить плагин Oracle Java 6: sudo apt-get install sun-java6-plugin

Похоже, что он не имеет пригодных для использования файлов и не выдает никаких ошибок или предупреждений во время установки.

Я открыт для любых идей о том, как заставить это работать.

Ответы [ 4 ]

0 голосов
/ 27 апреля 2012

Информация в этой теме может оказаться полезной.

https://askubuntu.com/questions/42122/cant-copy-from-clipboard-to-any-java-applet

Похоже, что по умолчанию библиотека java.awt не имеет доступа к системному буферу обмена.

Edit: вышеупомянутое решение было в конечном итоге бесполезным в моем случае.Я смог получить доступ к элементам в системном буфере обмена, которые я поместил в Java-приложения, следуя совету по загрузке Glipper, упомянутому в теме ниже.

Java - скопированное содержимое буфера обмена исчезает после выхода из программы

0 голосов
/ 01 апреля 2011

Не уверен, нужно ли вам это запускать в песочнице или проблема в том, чтобы подписать апплет, но ошибка разрешения, скорее всего, связана с тем, что ваш доступ к буферу обмена не заключен в привилегированный блок. Вот пример упаковки. Апплет должен быть подписан также.

 Clipboard systemClipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() {
        public Object run() 
        {
            Clipboard tempClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
         return tempClipboard;
        }
    });

    // get the contents on the clipboard in a 
    // Transferable object
    Transferable clipboardContents = systemClipboard.getContents(null);
0 голосов
/ 02 апреля 2011

Поскольку вы не ответили на вопросы, вот еще один совет:

Чтобы перейти на плагин Sun после установки, вам нужно сделать sudo update-java-alternatives java-6-sun, а затем перезапустить Firefox (или, по крайней мере, закрыть и снова открыть все вкладки, содержащие апплеты Java).

Примечание. При этом изменяется не только плагин, но и JVM по умолчанию для всей системы. Если вы хотите изменить только плагин, добавьте переключатель --plugin (до java-6-sun).

Но, пожалуйста, сообщите, дает ли использование плагина Sun какие-либо изменения.

0 голосов
/ 01 апреля 2011

Я рад, что ты спросил. Смотрите ветку Копировать в песочницу. в 1.6.0_24 + в OTN для потенциального решения.

На самом деле, я буду признателен за результаты вашего теста для того кода, который я разместил - подробности в ветке. Я переместил его с форума Swing на форум по программированию на Java, чтобы попытаться получить некоторые результаты для любой ОС, кроме Windows, но до сих пор не получил никаких результатов, кроме Windows.

Если вы вставите сюда данные и комментарии, я включу их в таблицу результатов и ссылку обратно.

...