用Java复制到剪贴板

clo*_*018 72 java string clipboard awt

我想将用户的剪贴板设置为Java控制台应用程序中的字符串.有任何想法吗?

use*_*421 133

使用它Toolkit来获取系统剪贴板.创建一个StringSelectionString并把它添加到Clipboard.

简化:

StringSelection selection = new StringSelection(theString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
Run Code Online (Sandbox Code Playgroud)


cam*_*ckr 31

这是一个简单的SSCCE来完成这个:

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

class ClipboardTest
{
    public static void main(String[] args)
        throws UnsupportedFlavorException, IOException
    {
        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
        StringSelection testData;

        //  Add some test data

        if (args.length > 0)
            testData = new StringSelection( args[0] );
        else
            testData = new StringSelection( "Test Data" );

        c.setContents(testData, testData);

        //  Get clipboard contents, as a String

        Transferable t = c.getContents( null );

        if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
        {
            Object o = t.getTransferData( DataFlavor.stringFlavor );
            String data = (String)t.getTransferData( DataFlavor.stringFlavor );
            System.out.println( "Clipboard contents: " + data );
        }

        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)


rad*_*ado 5

如果您在Linux上并使用OpenJDK,它将无法正常工作。您必须在Linux上使用Sun JDK才能运行。

  • 为什么?您有关于它的更多信息吗?错误报告?您可以获得一些声誉;)http://stackoverflow.com/q/14242719/194609 (3认同)

Xer*_*rus 5

对于仍然绊脚石寻找JavaFX方式来实现此目标的任何人,请前往:

ClipboardContent content = new ClipboardContent();
content.putString("Some text");
content.putHtml("<b>Bold</b> text");
Clipboard.getSystemClipboard().setContent(content);
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读文档