2010-04-01 5 views
2

J'ai plusieurs applications Java Swing qui sont utilisées par plusieurs utilisateurs. Ma stratégie de déploiement consiste à localiser le fichier .jar sur un partage réseau et les utilisateurs créent des raccourcis vers ce fichier. Lorsque l'utilisateur lance une application, le fichier est copié sur sa machine et exécuté localement. Cette méthode permet une copie unique du code et une mise à jour facile.Besoin d'une meilleure stratégie de déploiement d'applications Java

Le problème est que je ne peux pas mettre à jour le fichier sur le partage réseau si n'importe quel utilisateur utilise l'application à ce moment-là.

Je ne peux pas utiliser Web Start car je n'ai pas accès à un cert pour signer le fichier jar.

Ma solution de contournement actuelle est une application distincte qui copie l'application souhaitée sur l'ordinateur local de l'utilisateur, lance l'application et quitte le lanceur. Il y a un délai de plusieurs secondes entre le moment où l'application de lancement se ferme et l'application de l'utilisateur devient visible. Est-ce que n'importe qui peut suggérer une meilleure méthode de déploiement où je peux facilement mettre à jour une copie centrale de l'application, une où Windows XP ne maintiendra pas un verrou sur le dossier?

Mise à jour: La méthode JSmooth résout les problèmes essentiels. Le fichier .exe créé par JSmooth est verrouillé en cours d'utilisation, mais les fichiers .jar contenant la fonctionnalité de l'application peuvent être mis à jour.

Répondre

7

Vous pouvez utiliser Java Web Start, car vous pouvez utiliser un certificat auto-signé pour signer vos fichiers. Cela donnera à vos utilisateurs un avertissement qu'ils peuvent accepter une fois pour toutes.

Je vous recommande donc d'aller dans ce sens, car c'est la seule façon Java de faire ce que vous voulez, et ça marche plutôt bien. Avec la dernière mise à jour de Java 6, vous obtenez de nombreuses nouvelles fonctionnalités utiles.

Un conseil: Lorsque vous lancez une nouvelle version, placez les pots dans un nouvel emplacement afin que l'URL pointant vers les fichiers jar dans le fichier JNLP change! C'est parce que Java Web Start met en cache les fichiers jar et c'est la meilleure façon que nous avons trouvé pour s'assurer que le cache est précis.


EDIT: Je crois que vous pouvez également utiliser JSmooth pour envelopper les fichiers Java dans un fichier EXE, qui extrait de manière transparente les différents fichiers sur l'ordinateur local et les exécute là. Cela ne devrait pas verrouiller le fichier EXE d'origine. Je vous recommande toutefois d'utiliser l'approche Web Start.

+0

En effet, Web Start a été conçu pour cela. L'acronyme JNLP signifie «Java Network Launching Protocol». –

+0

+1 pour JWS aka Java Web Start, mise à jour automatique, distribution facile de l'application à partir d'un emplacement central –

Questions connexes