Depois de me matar para criar um JAR ofuscado e tentar salvar meus byte codes de pessoas “não legais”, resolvi usar o JNLP mas para execução local, claro que este não é o real propósito do mesmo, mas acredito que é mais eficiente contra os descompiladores, pelo menos eu em minha humilde e curta experiência nunca consegui ver um .Class no JNLP, entretando no JAR…
Se o usuário for curioso, vai descobrir o local onde os .jar ficam instalados na máquina (basta olhar no Painel de Controle, Java, onde é que ficam esses arquivos). O arquivo .jnlp é apenas uma descrição da aplicação, que continua sendo rodada a partir de um .jar. A única diferença é que o .jar fica meio “escondido” na máquina em vez de ser fácil de puxar (como se fosse uma applet).
Dê uma olhadinha neste diretório, e tenha uma surpresa desagradável:
C:\Documents and Settings\usuario\Application Data\Sun\Java\Deployment\cache
Os nomes dos arquivos que estão nos subdiretórios desse diretório são estranhos, mas a maior parte deles está em formato jar - para comprovar isso, renomeie algum arquivo grande desses com a extensão .zip, e tente olhar dentro dele.
Caramba, não sabia que os arquivos ficavam lá, pô mancada da SUN não criar um meio de ocultar essas infomações da aplicação, os ofuscadores não fazem lá grande coisa e que basta ter 10 minutos de paciencia para entender a lógica de uma aplicação qq (pelo menos as que eu faço).