【发布时间】:2012-12-23 22:37:55
【问题描述】:
以下来自独立应用程序的代码在 ubuntu 中运行:
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
public class ClipboardTest {
public static void main(String[] args) throws Exception {
Clipboard clipBoard = Toolkit.getDefaultToolkit().getSystemClipboard();
// print the last copied thing
System.out.println(clipBoard.getContents(null).getTransferData(DataFlavor.stringFlavor));
StringSelection data = new StringSelection("NOW");
clipBoard.setContents(data, data);
// prints NOW
System.out.println(clipBoard.getContents(null).getTransferData(DataFlavor.stringFlavor));
}
}
粘贴 (Ctrl+V) 到不同的应用程序没有任何结果;我期待“现在”。再次调用上述代码会出现以下异常:
Exception in thread "main" java.awt.datatransfer.UnsupportedFlavorException: Unicode String
at sun.awt.datatransfer.ClipboardTransferable.getTransferData(ClipboardTransferable.java:160)
作为一个独立的应用程序,即使在2011 security changes 之后也应该可以工作。通过 Ctrl+C 从 JTextField 内部复制,然后粘贴到其他地方。
在 ubuntu 11.04 上使用最新的 java7 (jdk1.7.0_10) 和 jdk1.6.0_33 均未成功;它should work 并在具有最新 java7 的 windows 7 和具有 java6_37 的 mac osx 10.6 上按预期工作。还用这些java尝试了xubuntu 12.04,但它在那里不起作用。这是 linux/ubuntu 的错误吗?
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
你可以从tutorial examples开始。
-
我不需要教程。正如我所说,这有效(在 windows+mac 上)但在 ubuntu 上无效。这里有 ubuntu 的人可以检查它是否适合他?
-
对我来说,“以管理员身份运行”解决了这个问题。
标签: java swing ubuntu awt copy-paste