Ascolta io ho utilizzato proguard.

Riguardo all'uso di proguard, dai in pasto il tuo jar senza abilitare nessuna opzione ma proprio nessuna e vedi se ti da errore dello stesso tipo, in teoria no. Poi piano piano metti ottimizzazione del codice e offuscamento non inserendo però le opzioni keep.... che a volte causano problemi su variabili ecc ecc.

Cmq tengo a precisare che rendi più difficle la vita a chi vuole copiare il tuo programma ma non lo rendi impossibile infatti io ci ho rinunciato ad utilizzarlo.

Spero di averti chiarito alcuni dubbi