Dire semplicemente "sul desktop" non è sufficiente: su un sistema vi possono essere più desktop, almeno uno per utente, se il desktop è previsto... se non è previsto un sistema grafico molto probabilmente non c'è nemmeno un desktop.
Di questo devi tenere conto.
E' più facile, piuttosto, fare riferimento alla directory "home" dell'utente o alla directory dove risiede il programma (o una sua sub-directory).
Per ottenere la "home" dell'utente, c'è un'apposita property di sistema:
codice:
String pathHomeUtente = System.getProperty("user.home");
Per ottenere la directory dell'applicazione puoi chiamare questo metodo all'interno di una tua classe:
codice:
String appDir = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParent();
(mai provato, ma dovrebbe funzionare)
Ciao.