Tópico recorrente. Enfim, vamos lá. A principal causa de problemas com Java Web Start está na má definição de dados no arquivo jnpl. Então vou tentar fazer um micro-tutorialzinho aqui. O seu arquivo .jnpl deve ter uma cara parecida com esta aqui:
<?xml version="1.0" encoding="UTF-8"?><jnlpspec="1.0+"codebase="[URL onde está localizado seu jnpl]"href="[nome do seu arquivo jnpl]"><information>(1)
<title>[Nomedasuaaplicação]</title><vendor>[Nomedasuaempresaouoseumesmo]</vendor><homepagehref="[URL da sua empresa]"/><offline-allowed/></information><resources><j2seversion="1.4+"/>(2)
<jarhref="[URL relativa para o .jar da sua aplicação]"/>(3)
</resources><application-descmain-class="[nome completo da sua classe principal]"/>(4)
</jnlp>
Comentários:
:arrow: b[/b]: os dados que estiverem aninhados dentro da tag information serão apresentados no carregamento da sua aplicação. A tag offline-allowed indica que sua aplicação pode ser utilizada offline (duhhh).
:arrow: b[/b]: indica a versão de J2SE que o cliente deve ter instalado em sua máquina para poder abrir a aplicação. O sinal + indica que sua aplicação suporta qualquer versão superior àquela que você indicou.
:arrow: b[/b]: vamos supor que sua aplicação (.jar) esteja em www.blablabla.com/apps/myapp.jar. Sendo assim, o seu “codebase” deve ser www.blablabla.com e o valor da tag “application-desc main-class” deve ser /apps/myapp.jar.
:arrow: b[/b]: é aquela mesma conversa: se sua classe principal estiver dentro do pacote foo.bar, então o valor a ser colocado ali deve ser foo.bar.Main.