Forum Programmation.java Installateur packaging

Posté par  .
1
28
mar.
2012

Bonjour,

Je poste suite à mon dernier journal, qui annonçait la sortie de Star Buck 0.1.
Je mets à disposition actuellement un installateur Windows. Cet installeur me pose quelques soucis dans le sens où il est spécifique à une plateforme, contrairement à Java.

Dans l'idéal, je souhaite que l'utilisateur de mon logiciel puisse télécharger, installer, et lancer l'application, sans se préoccuper de la plateforme.

Sun/Oracle (je n'aime pâs citer d'entreprise, mais si on parle c'est là que se trouve la référence les JSR, le JDK officiel, la doc officielle, etc) propose Java Web Start qui fonctionne sur toute plateforme disposant de Java.

Sur ce, la question technique? Avec Netbeans ou autre IDE comment créer l'archive Java Web Start (développeur ou packaging, distribution sur le web)? Puis mettre les liens sur mon site? Est-ce que l'utilisateur trouvera le lien (Google c'est facile)? Est-ce valable pour une utilisation off-line? Est-ce compatible multi-os? Windows, Linux, MacOSX?

Encore est-ce le meilleur moyen de distribuer une application dont le source est écrit en Java et qui est compilée avec javac? J'ai vu que certaines applications distribuent un jre avec l'installation. Est-ce la bonne technique?

Enfin la dernière question (évitez les trolls): Dois-je écrire une application par plateforme?
Si je me remonte à mes lointains souvenirs.

Bref je me pose des questions sur l'"installabilité" chez la "clientèle". Après l'utilisabilité, ça allons y travailler aussi.
Pour info sur mon application un seul lien http://www.ibiiztera.be
Et la discussion préalable ici-même (journaux) http://linuxfr.org/users/fog/journaux/star-buck-0-1

PS: Pour ceux qui se sont sentis insulté la dernière fois, je promets de ne pas faire pareil cette fois.

  • # un fichier pour les gouverner tous... mon precieux....

    Posté par  . Évalué à 2.

    un makefile qui va generer tous les installeurs

    pour debian/ubuntu, c'est faire une arborescence avec les fichiers bien placé, avec un dossier DEBIAN contenant quelques fichiers clefs.

    pour rpm, y a surement un truc similaire.

    pour windows ou OSX, il faut te renseigner.

    pour la question du JRE avec l'appli, perso j'aime pas, car j'ai peut-etre deja un JRE à jour sur ma machine, pas besoin d'en avoir un 2e.

    • [^] # Re: un fichier pour les gouverner tous... mon precieux....

      Posté par  . Évalué à -2.

      En Java, j'ai déjà le jar, de là µ, il suffit pour l'utilisateur de faire:
      java -jar starbuck-0.1

      De là, en connaissant Linux et ses différentes distributions:

      Je souhaite arriver à:

      apt-get install starbuck
      ou
      yum ++OPTIONS TROU DE MEMOIRE++ starbuck

      Et pour les mises à jour de version:
      apt-get update
      apt-get upgrade

      Bon , pour ça il faudrait que l'application soit acceptée dans les repos Linux.

      Est-ce possible pour une application Java? Si oui où puis-je trouver de la documentation?

      Encore une question technique: est-ce que le JRE doit être dans les dépendances du paquetage? Bref paassage de "Java spécifique application" -> "distribution générique".

      Jusqu'à maintenant mes connaissances, c'est de faire le JAR. Après je souhaite que l'utilisateur, quelque soit le OS qu'il utilise, puisse l'installer comme n'importe quelle autre application. Alors si je ne fournis pas le JRE pour Linux, est-il possible de mettre le jar et d'autres ressources dans l'installateur Linux? Comme c'est le cas pour le jdk? Quelle commande utiliser?

      Et pour l'installateur Windows, comment je passe du direct "java -jar starbuck-0.1.jar" à quelque chose qui: vérifie l'existence du JRE, le chemin vers java.exe? et lance le programme? Manifestement, l'installateur doit vérifier l'existence du JRE avant d'installer. Ca me semble plus simple pour l'utilisateur.

      Bref comment je paquetage le jar? Dois-je laisser ce travail à ceux qui font le packaging d'applications? Comment entrer en contact avec eux ?

      • [^] # Re: un fichier pour les gouverner tous... mon precieux....

        Posté par  . Évalué à 2.

        ma vie :

        pour packager sous debian/ubuntu, je prepare une arborescence qu'on appelera MONAPPLI qui va contenir ce qui sera deposer dans le / de la distrib

        1. je lui fait un dossier dans MONAPPLI/opt/monappli
        2. je lui creer un lanceur dans MONAPPLI/usr/share/applications/monapplication.desktop afin qu'elle apparaisse dans le menu de l'interface graphique
        3. dans le dossier MONAPPLI/DEBIAN/, je remplis le fichier control pour dire que mon programme est architecture independant, qu'il a une dependance (afin de l'installer si elle n'est pas deja presente)

        puis j'utilise l'outil prevu pour construire le paquet à partir de mon dossier MONAPPLI.

      • [^] # Re: un fichier pour les gouverner tous... mon precieux....

        Posté par  . Évalué à 2.

        Si tu veux faire des paquets:
        * Chaque distribution a ses regles de paquetage. Pour fedora, voir par exemple https://fedoraproject.org/wiki/Packaging:Guidelines et https://fedoraproject.org/wiki/Packaging:Java
        * Regarde du cote de https://build.opensuse.org/ qui te fourni un service gratuitement pour faire des paquets pour les distributions GNU/Linux les plus connues
        * Pour gerer ton projet, je te conseille de regarder du cote de maven :)
        * le jre ne doit pas etre dans les dependances. Ton paquet dependra sur un truc du genre "Requires: java".
        * Les distributions GNU/Linux fournissent au moins openJDK. Donc je ne me soucierai pas trop de la presence ou non de la JRE.

  • # Ma solution

    Posté par  (site web personnel) . Évalué à 3.

    Je distribue Newton Adventure de deux façons:

    Java Web Start est assez simple, il suffit de mettre ton jar et un fichier *.jnlp sur un serveur web. Le fichier jnlp est un fichier xml, tu peux t'inspirer du mien, il est assez simple.

    L'avantage de Java Web Start, c'est qu'il installe ton application en un clic, crée un icône et gère les droits: ton application peut être lancée en mode restreint, sans accès aux fichiers de l'utilisateur, pour une démo par exemple ou avec les droits d'une application normale.

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.