Java Web Start - Maquina Multi-usuario

Olá,

Estou fazendo uma aplicação java e pretendo distribuí-la via jws.

O problema é que esta aplicação deve ser a mesma para todos os usuários de um mesmo sistema e a cache do JWS, onde é instalada a aplicação, se localiza dentro da pasta do usuário.
Assim cada usuário, ao acessar o jnlp, vai baixar seu próprio Jar.

Alguém sabe como resolver isto?

A razão é que o JWS não requer permissões especiais para instalar uma aplicação no usuário (o usuário não precisa ser administrador para rodar uma aplicação JWS).
Isso quer dizer que o JWS não pode instalar uma aplicação “system-wide” (ou seja, se ele pudesse requerer poderes de administrador ele até poderia fazer esse tipo de instalação). De qualquer maneira, como o JWS é uma solução que permite a atualização automática de software, ele não pode supor que o usuário correntemente logado é um administrador, para efetuar a atualização.
(É claro que se o JWS tivesse mais interação com o Windows Installer ele até poderia tentar fazer isso; mas a única interação que o JWS tem com o sistema de instalação de aplicações do Windows é que ele inclui (para o usuário logado) a aplicação JWS baixada como sendo um software instalado.
Experimente baixar uma aplicação JWS sob um determinado usuário, listar os programas instalados, e mudar de usuário. Você vai ver que para esse outro usuário o programa consta como “não instalado”.

Valeu aí as informações thingol,

Mas o que eu queria saber é justamente se há uma forma de contornar isto, não tornando necessário que cada usuário instale sua própria cópia do sistema.

Bom, Java Web Start é uma forma “glorificada” das applets. Tem até aquele esquema de assinaturas e tudo; se você precisa de um esquema de ter uma cópia física única da aplicação para a máquina inteira, então você não pode usar Java Web Start, e sim alguma outra coisa mais tosca (como um instalador de aplicativos, que é algo que depende muito do seu sistema operacional).

sugestão:

esqueça Java Web Start , parta para uma aplicação web.

Eu uso JWS em um projeto e está funcioanando muito bem, como é uma aplicação que usa aceleração gráfica tem que ser assim.

Mas no seu caso acho a sugestão do ricardosoares deva ser considerada.

Um meio termo é você usar o servidor onde o app. jws vai ser hospedado para armazenar os dados. Isso é permitido pela sandbox, acessar o host de hospedagem.

O meu aplicativo faz isso, baixa arquivos via http de servlets que eu criei. Eles inclusive são enviados compactados, via GZipInputStream. Ficou bem rapido. A técnica se chama HTTP Tunneling. Se procurar no google vc acha.

Se estiver no escopo do seu projeto, crie um proxy no usuário e aponte todos os usuários para este proxy, assim, apenas o proxy irá baixar as atualizações do seu servidor e o restante irá baixar do proxy.

Não é uma solução genérica, mas dependendo do projeto pode ser viável.

No site JavaOne, na parte de casos de uso você pode encontrar mais implementações do jws em grande escala.

http://java.sun.com/javaone/sf/index.jsp

[]'s