Sto riscontrando problemi nel ricevere dati dagli Appunti di sistema su Mac OS X. Quello che sto cercando di fare è ascoltare gli appunti di sistema e stampare il contenuto degli Appunti ogni volta che nuove informazioni [basate su testo] sono metterci dentroMonitoraggio degli appunti su Mac OS X | Java
Il problema: soffietto codice funziona perfettamente bene su Windows 7 e macchine openSUSE Linux, tuttavia quando provo esegue lo stesso codice su Mac OS X il programma non riesce a stampare il nuovo contenuto degli appunti fino attenzione viene data alla domanda . [Non viene stampato niente fino a quando clicco sull'icona dell'applicazione sul dock ...]
mio codice sorgente:
import java.awt.Toolkit;
import java.awt.datatransfer.*;
import java.io.IOException;
public class ClipboardListener extends Thread implements ClipboardOwner {
Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
public void run(){
Transferable selection = systemClipboard.getContents(this);
gainOwnership(selection);
}
public void gainOwnership(Transferable t){
try {this.sleep(100);}
catch (InterruptedException e) {e.printStackTrace();}
systemClipboard.setContents(t, this);
}
public void lostOwnership(Clipboard clipboard, Transferable contents) {
try {System.out.println((String) clipboard.getData(DataFlavor.stringFlavor));}
catch (UnsupportedFlavorException e) {}
catch (IOException e) {}
gainOwnership(contents);
}
}
public class myApp {
public static void main(String[] args){
ClipboardListener listener = new ClipboardListener();
listener.start();
while(true){}}
}
Quello che mi manca/facendo di sbagliato?
[Update] ho trovato problema simile postato qui: Java thread goes to sleep when not in focus on OSX Tuttavia utilizzando il "java-jar myApp.jar &" comando non ha funzionato come una soluzione per me.
Hai trovato un modo per risolvere questo problema? Ho anche bisogno della stessa cosa. –
Purtroppo no. –