gpt4 book ai didi

java - 复制到全局剪贴板不适用于 Ubuntu 中的 Java

转载 作者:IT老高 更新时间:2023-10-28 20:28:12 32 4
gpt4 key购买 nike

以下来自独立应用程序的代码在 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 的错误吗?

Related question

最佳答案

我在工作中遇到了与应用程序相同的问题,这是我发现的一篇文章,解释了原因和可能的解决方案。希望对你有帮助。

Why it happens

Clipboard persistence is a bug that affects many programs under Ubuntu and other X11-based operating systems. Fixing it is a Google Summer of Code 2010 project. Wikipedia has a good overview of the issue. If you want to fix as a user, you can install Parcellite or another clipboard manager. If you want to fix it as a programmer, you can modify your program to conform to the ClipboardManager specification.

X-Window wiki

Using gnome library您可以在剪贴板上调用 store 方法并解决此问题。到目前为止,这似乎是唯一值得尝试的事情。也看到了 GTK 的类似情况,但仅在 Eclipse 的错误中。

关于java - 复制到全局剪贴板不适用于 Ubuntu 中的 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14242719/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com