IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JWS Java Discussion :

Mise à jour auto de fichiers externes via JWS


Sujet :

JWS Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Mise à jour auto de fichiers externes via JWS
    Bonjour à toutes les pointures en Java ! Je demande votre aide pour la mise en place d'un système de mises à jour pour un client Java. Après quelques recherches je suis tombé sur le système Java Web Start, effectivement après suivi des tutoriels et des tests ça répondrait aux spécifications, le problème c'est que l'application n'a pas été conçue pour être déployée par JWS ni même par un JAR mais via un installeur setup.exe.

    L'application peut s'exécuter sous la forme d'une archive JAR, mais le JAR n'est pas autonome. Il y a énormément de fichiers externes : des images pour la GUI, des fichiers de conf, de traduction... qui doivent être aussi mis à jour s'il y a changement. Or si j'ai bien lu les spécifications de JWS tout les éléments à déployer/mettre à jour doivent être sous la forme d'archives JAR.

    Il est hors de question (et beaucoup trop long) de modifier l'application à la base, donc je recherche plusieurs solutions :

    - Utiliser des méthodes DownloadService pour mettre à jour les ressources au démarrage de l'application (mais là je sèche)
    - Avoir un setup qui déploie les fichiers locaux non nécessaires à mettre à jour, puis lance un JNLP qui installerait l'application (les classes), les libs ainsi que tous les fichiers sujets aux mises à jour automatiques (encore faut-il que j'arrive a mettre ça dans des JAR).

    Je précise que le déploiement via JWS n'est pas obligatoire, uniquement la mise à jour, même si ça serait préférable d'avoir les deux.

    Donc question : est-il possible de mettre "n'importe quoi" dans un JAR et de mettre à jour ce n'importe quoi via Java Web Start, de façon incrémentale ?
    Si non, de quelles solutions dispose-je ?

  2. #2
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai réussi sans trop de problème à insérer les fichiers que je voulais dans les Jar et à automatiser toute cette exportation grâce à Eclipse et aux .jardesc, mais l'application ne peut s'exécuter qu'avec certains fichiers présents dans le répertoire d'installation (fichiers de conf...). Je ne peux pas mettre ces fichiers dans des Jar car ils doivent êtres accessibles et modifiables depuis le disque dur, alors que Java Web Start les stockerais dans le cache et les rendrais illisible.

    Mon soucis est donc de permettre à l'application JWS de se lancer avec un paramètre permettant d'importer/de mettre en relation les fichiers "locaux" et l'application. Un genre de "paramètre de répertoire d'exécution Java". Cela existe t-il ?

    Pour illustrer, l'exécution manuelle des Jar sous Linux échoue, alors qu'en lançant le jar avec la commande java -jar test.jar (en plaçant tout dans le répertoire local) fonctionne : le jar est lancé par défaut avec les paramètres de répertoire de la JVM, et n'est plus en relation avec les fichiers nécessaires.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour , je relance le topic , est-ce que quelqu'un pourrait nous aider merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Djul_ Voir le message
    L'application peut s'exécuter sous la forme d'une archive JAR, mais le JAR n'est pas autonome. Il y a énormément de fichiers externes : des images pour la GUI, des fichiers de conf, de traduction... qui doivent être aussi mis à jour s'il y a changement.
    java webstart ou pas, c'est un très mauvaise habitude de les garder en dehors du jar. On met toujours les images, les ressources bundle (pour les traduction) et la configuration par défaut dans le jar. Après, la configuration spécifique de l'utilisateur (parce que ca existe souvent quand meme) et les trucs comme "les derniers fichiers ouverts" etc, on a plusieurs options.

    Soit on stocke dans un fichier à part (qu'on stockera par exemple dans la $HOME de l'utilisateur), soit en utiliser l'api Preferences, soit, si on est en javawebstart, on peux aussi utiliser l'api "PersistenceService" pour éviter d'avoir à signer les jars.
    Il est hors de question (et beaucoup trop long) de modifier l'application à la base, donc je recherche plusieurs solutions :
    Alors vous l'avez dans le baba. Vous êtes occupé de dire "je cherche une solution pour exécuter avec java webstart une application qui refuse d'être compatible". Rendez la compatible, retirez ou corriger les bourdes qui sont dedans.
    - Utiliser des méthodes DownloadService pour mettre à jour les ressources au démarrage de l'application (mais là je sèche)
    Ce n'est pas destiné à ça
    - Avoir un setup qui déploie les fichiers locaux non nécessaires à mettre à jour,
    Faut savoir, vous voulez les mettre à jour ou pas? Si pas, suffit dans le première ligne de votre main(), de copier depuis l'intérieur du jar vers un dossier quelconque les ressources dont vous avez besoin
    puis lance un JNLP qui installerait l'application (les classes),
    Retirez vous de la tete cette notion d'installation, on installe pas en jnlp.

    Je précise que le déploiement via JWS n'est pas obligatoire, uniquement la mise à jour, même si ça serait préférable d'avoir les deux.
    La mise à jour, c'est le déploiement :/

    Donc question : est-il possible de mettre "n'importe quoi" dans un JAR et de mettre à jour ce n'importe quoi via Java Web Start, de façon incrémentale ?
    Si non, de quelles solutions dispose-je ?
    Non, si c'est du n'importe quoi qui fait du n'importe quoi, écrivez un main qui fait le "nimporte quoi téléchargement" puis qui lancer (via java -jar) le n'importe quoi en question.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci de votre réponse , mais est-ce qu'on peut intégrer également la base de donnée locale de l'application client dans le fichier jar?

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tout ce qui est donnée modifiée par le client à perserver, voir mon message plus haut, le plus simple est de les stocker dans la Home directory de l'utilisateur. Pour ce faire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File home= new File(System.getProperty("user.home"));
    File storageFolder = new File(home,"MonApplication");

Discussions similaires

  1. [WD19] Problème mise à jour auto des fichiers de données
    Par Quentindvlp31 dans le forum WinDev
    Réponses: 4
    Dernier message: 16/04/2015, 13h17
  2. [WD12] Mise à jour auto des fichiers de transactions
    Par zouzoukha dans le forum WinDev
    Réponses: 5
    Dernier message: 03/11/2011, 08h19
  3. [AC-2002] MISE à jour auto de table depuis 1 fichier excel (différent chaque jour!)
    Par gandalf20000000 dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/08/2009, 15h19
  4. [WD10] Mise à jour auto d'une appli via internet
    Par yaboki dans le forum WinDev
    Réponses: 1
    Dernier message: 18/10/2007, 16h51
  5. Mise à jour quotidienne d'une table via fichier texte
    Par chooky97150 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 31/08/2006, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo