Java 设置剪贴板内容

Java 设置剪贴板内容,java,linux,Java,Linux,我试图弄明白为什么设置系统剪贴板的内容对我来说不起作用。我以编程方式设置剪贴板内容。当我使用代码的输出部分时,它是有效的。但是,当我尝试在任何文本编辑器中复制/粘贴时,它是空白的 气垫船编辑,来自github的代码: import java.awt.HeadlessException; import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSele

我试图弄明白为什么设置系统剪贴板的内容对我来说不起作用。我以编程方式设置剪贴板内容。当我使用代码的输出部分时,它是有效的。但是,当我尝试在任何文本编辑器中复制/粘贴时,它是空白的


气垫船编辑,来自github的代码:

import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

public class Test {
   public static void main(String[] args) throws HeadlessException,
         UnsupportedFlavorException, IOException {

      Toolkit.getDefaultToolkit().getSystemClipboard()
            .setContents(new StringSelection("hi there"), null);

      System.out.println(((String) Toolkit.getDefaultToolkit()
            .getSystemClipboard().getData(DataFlavor.stringFlavor)));

   }
}

Linux剪切粘贴现在有点奇怪,因为至少有两种不同的方式。简言之,有时最好只使用中间按钮粘贴,而其他时候最好控制-v,有时两者似乎都不起作用

将autocutsel作为后台进程运行似乎会有所帮助。


这个程序可以做到这一点。它会将字符串“hi”设置为剪贴板。您可以将其更改为变量

你能给我们展示一个非常小的可编译和可运行的程序,向我们展示你的问题吗?否则很难猜到你做错了什么。在这里发布有什么烦人的?而且,我试过你的代码,它对我来说很好,我看到“你好”。这对你不起作用吗?@HovercraftFullOfEels我必须为每行加5个空格。也许是因为我在Linux上运行这个程序。但是,同样,上面的代码对你不适用吗?如果是,怎么做?它做错了什么?@HovercraftFullOfEels当我将数据复制/粘贴到文本编辑器中时,它是空白的。我尝试运行它,但它没有停止鼠标中的剪贴板。
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Clipboard;

public class tester{

 public static void main(String[] args){

     // from string to clipboard
    StringSelection selection = new StringSelection("hi");
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(selection, selection);
 }
}