Я хочу установить буфер обмена пользователя в строку в консольном приложении Java. Есть идеи?Копирование в буфер обмена в Java
ответ
Используйте Toolkit
, чтобы получить system clipboard. Создайте StringSelection со строкой и добавьте ее в буфер обмена.
упрощенный:
StringSelection selection = new StringSelection(theString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
Вот простой 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);
}
}
Если вы находитесь на Linux и с помощью OpenJDK, он не будет работать. Вы должны использовать Sun JDK для Linux, чтобы он работал.
Почему? есть ли у вас больше информации об этом? Сообщение об ошибке? Вы могли бы получить некоторую репутацию;) http://stackoverflow.com/q/14242719/194609 – Karussell
Что не получится? Это ответ на один из других ответов? –
Эта работа как чемпион;
String get= text.getText();
StringSelection selec= new StringSelection(get);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selec, selec);
Это точно так же, как Карлос написал 5 лет назад – fishinear
В Linux с Xclip:
Runtime run = Runtime.getRuntime();
Process p = null;
String str = "hello";
try {
p = run.exec(new String[]{"sh", "-c", "echo " + str + " | xclip -selection clipboard"});
}
catch (Exception e) {
System.out.println(e);
}
Что делать, если строка содержит символы конца строки? Будет ли это работать? –
Для тех, кто все еще спотыкаясь на этот пост, ищущей JavaFX способом для достижения этой цели, здесь вы идете:
ClipboardContent content = new ClipboardContent();
content.putString("Some text");
content.putHtml("<b>Bold</b> text");
Clipboard.getSystemClipboard().setContent(content);
Для получения дополнительной информации, read the documentation.
- 1. Java Копирование в буфер обмена
- 2. Копирование в буфер обмена
- 3. Копирование содержимого в буфер обмена
- 4. копирование текста в буфер обмена
- 5. копирование текста в буфер обмена
- 6. Копирование текста в буфер обмена из TextView
- 7. Копирование в буфер обмена в bootstrap 3
- 8. Буфер обмена Копирование объектов с
- 9. Копирование значение строки в буфер обмена
- 10. Копирование вывода переменной JavaScript в буфер обмена
- 11. Копирование в буфер обмена и вставки событий
- 12. Linux/C++ Копирование строки в буфер обмена
- 13. Копирование открытого ключа rsa в буфер обмена
- 14. Delphi выдает копирование в буфер обмена Windows
- 15. Копирование таблицы в буфер обмена javascript
- 16. Eclipse: копирование предупреждения в буфер обмена
- 17. Копирование данных изображения в буфер обмена?
- 18. String копирование в буфер обмена ошибка
- 19. WinAPI: Правильное копирование HBITMAP в буфер обмена
- 20. JQuery - копирование содержимого div в буфер обмена
- 21. Копирование Docx в буфер обмена C#
- 22. Копирование DefaultTableModel данных в буфер обмена
- 23. Копирование копии Vim в системный буфер обмена
- 24. Копирование в буфер обмена для базового html
- 25. Копирование вывода CMD в буфер обмена
- 26. Elisp: копирование буфера в буфер обмена
- 27. Копирование текущего буфера Vim в буфер обмена
- 28. Копирование содержимого веб-страницы в буфер обмена
- 29. Копирование комментирования в буфер обмена Windows
- 30. Копирование в буфер обмена не работает
Я пробовал использовать AWT безрезультатно. – clone1018
затем показать, что вы пробовали, и сообщить нам, что именно не сработало – unbeli