Java剪贴板在Robot执行期间未更新

Java剪贴板在Robot执行期间未更新,java,clipboard,updating,awtrobot,Java,Clipboard,Updating,Awtrobot,我正在尝试做一个应用程序,复制一个网站的文本。问题是我无法获得剪贴板更新,我有以下代码: // Ctrl+A > right click > click on copy Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); StringSelection data = new StringSelection("https://www.di

我正在尝试做一个应用程序,复制一个网站的文本。问题是我无法获得剪贴板更新,我有以下代码:

           // Ctrl+A > right click > click on copy

            Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
            StringSelection data = new StringSelection("https://www.discogs.com/");
            cb.setContents(data, data);
            Robot robo = new Robot();  
            robo.delay(500);
            robo.keyPress(KeyEvent.VK_CONTROL);
            robo.keyPress(KeyEvent.VK_A);
            robo.keyRelease(KeyEvent.VK_A);
            robo.keyRelease(KeyEvent.VK_CONTROL);

            robo.mouseMove(136, 874); 
            robo.mousePress(InputEvent.BUTTON3_MASK);
            robo.mouseRelease(InputEvent.BUTTON3_MASK);
            robo.delay(500);

            robo.mouseMove(323, 890);
            robo.mousePress(InputEvent.BUTTON1_MASK);
            robo.mouseRelease(InputEvent.BUTTON1_MASK);
            robo.delay(5000);

            //Run to update the clipboard
            new Thread(t1).start();
。。。到目前为止,一切顺利

private static Runnable t1 = new Runnable() {
    public void run() {
        try{

            Thread.sleep(500);

            Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
            String paste = c.getContents(null).getTransferData(DataFlavor.stringFlavor).toString();
            System.out.println(paste);

            Thread.sleep(500);
        } catch (Exception e){
        }
    }
};
所发生的事情是,它确实按照我的意愿进行选择和复制,java执行中的剪贴板始终为“”,如果执行后我在记事本上按ctrl+V,它就是我想要的网站内容,我已经一步一步地调试,没有线程,CRTL+C而不是右键单击和复制,增加并添加robo.delay,我无法获得实际的Windows剪贴板,结果总是一样的


谢谢您的建议。

您正在将字符串复制到系统剪贴板。你认为粘贴该字符串会导致网页内容下载到你的计算机上吗?不,我传递的字符串只是为了进入网站,它可以工作,我希望在右键单击并复制后能够在java上阅读该字符串,但我总是得到我以前传递的旧网站,而不是复制的内容。在复制之前已经清理了剪贴板,它将保持为空。谢谢。所以,我发现问题出在cb.setContents(data,data);给定,java无法再读取我的新剪贴板条目,它始终保持设置状态,无论我是否在系统中重写它,java显示我之前设置的状态。。。有人能帮忙吗?