Tout le monde pense-t-il que tout le monde ne libère pas de logiciels en tant que jar et libère ensuite des logiciels comme exe?Je n'ai jamais vu un logiciel être publié en tant que jar, alors comment puis-je faire sortir un logiciel comme exe aussi?
Répondre
Oui. Si vous traitez avec des utilisateurs finaux et non des programmeurs, la construction d'une solution native pour son platfrom est une bonne idée. Créez un dmg, un exe et quelques paquets linux. Pour les choses exe, jetez un oeil à launch4j ou jsmooth.
Nous utilisons jsmooth avec fourmi, très agréable quand on utilise un serveur de build. –
Dépend de qui est votre public. Si vous écrivez des applications destinées à être installées par des administrateurs système professionnels, je ferais juste des jars. Si vous écrivez pour des utilisateurs finaux sans aucune connaissance technique, un binaire dépendant du système peut être le bon choix.
En prenant la route jar, je envisagerais de construire deux distributions: une comprenant toutes les bibliothèques dont dépend l'application et une sans celles-ci. Comme pour le binaire: pourquoi ne pas fournir un wrapper fin sous la forme d'un fichier batch ou d'un script shell?
Une autre alternative est install4j,
un constructeur puissant d'installation Java multi-plateforme qui génère des installateurs natifs et lanceurs d'applications pour les applications Java.
J'ai téléchargé et installé une application qui l'a utilisée et qui a bien fonctionné. Cependant, son prix peut dissuader les individus ou les petites entreprises qui tentent de déployer une application Java réduite.
Le logiciel Java peut être libéré de plusieurs façons en fonction du marché cible.
Le plus simple pour le développeur (mais le plus difficile pour l'utilisateur final) est de juste de publier un fichier jar (ou un ensemble de fichiers Jar). Sur de nombreux systèmes, le JAR sera "double-clic", et agira donc comme un exécutable. Mais si l'utilisateur final n'a pas Java installé, cela ne fonctionnera pas.
Bon si vous contrôlez l'environnement cible. Aussi bien si vous voulez cibler Windows, Mac et Linux à la fois. Toute plate-forme avec Java peut l'exécuter, y compris les plates-formes que vous n'aviez pas envisagées.
Bad si vous ciblez des utilisateurs normaux. Il ne peut pas "installer des tâches", configurer n'importe quoi dans le menu Démarrer ou s'associer avec un type de fichier.
Java Web Start est ma préférence dans la plupart des cas. Il donne un programme d'installation basé sur Java et peut configurer le menu de démarrage, associer les types de fichiers et tout ce bonté. Mais fait apparaître une boîte de sécurité sur l'installation.
Bon pour la plupart des cas. Vous avez juste le lien pour tous les systèmes d'exploitation.
Mauvais si vous pensez que l'utilisateur n'a pas installé de JRE ou si vous ne voulez pas que l'utilisateur final sache que l'application est écrite en Java.
Vous pouvez publier un fichier zip avec les fichiers JAR et un fichier .bat .bat et un fichier .sh pour démarrer.
Bon pour les administrateurs, les développeurs et les applications en ligne de commande.
Bad pour les utilisateurs finaux qui ne savent pas vraiment ce qu'est un script de chauve-souris et shell et n'auraient aucune idée de ce qu'il faut faire si le script a été cassé pour leur système.
Une fine enveloppe .exe entoure le fichier Jar. Cela donne l'impression à l'utilisateur final que l'application est native. Ils viennent normalement avec ...
A Programme d'installation compatible Java. Ceci est un programme d'installation natif (si différents installateurs pour Windows, Mac & Linux). Cela permettra de détecter si Java a été installé sur la machine cible et, dans le cas contraire, de lancer l'installation de JRE. Il sera également capable de faire toutes les choses amusantes de post-installation telles que la définition des associations de fichiers et ajouter des éléments au menu Démarrer.
Bon pour la plupart des cas.
Mauvais si vous ciblez des plates-formes multipliées, car vous devrez gérer un programme d'installation pour chaque plate-forme. Également mauvaise si l'une des plates-formes cibles ne dispose pas d'un programme d'installation Java (vous devrez alors utiliser l'une des autres méthodes ci-dessus pour cette plateforme).
Natif EXE. En utilisant un compilateur Java-to-natif (Jet, GCJ ou IKVM), vous créez un exécutable natif.
Bon Si vous ne voulez vraiment pas que les gens sachent que vous utilisez Java ou avez besoin de s'intégrer avec l'environnement natif d'une manière étrange (ikvm vous permettra d'utiliser votre code Java dans .NET comme un simple objet .NET) .
Mauvais comme les gens pensent que cela rendra magiquement l'application plus rapide quand il ne sera pas.
A jpm4j. JPM est un gestionnaire de paquets pour Java comme npm pour nodejs. Cela vous permet d'installer le logiciel via un petit script de ligne de commande, par exemple pour installer jython vous pouvez utiliser jpm install -f --name jython org.python:jython
. Bon pour les outils de développement. Bad pour les utilisateurs finaux car il est basé sur une ligne de commande et les oblige à installer d'abord jpm.
Edit: IKVM, JPM
+1 excellent résumé des possibilités disponibles –
Vous pouvez le faire vous-même en écrivant un court programme comme celui-ci (C?):
//run tests here
system("java -jar my_file.jar");
Mais vous devez créer une version de cet exécutable pour chaque Système opérateur.
'
Et en vérifiant qu'un JRE est installé ... – ShiDoiSi
Un vrai commentaire sur le
question utile, merci. De plus, vous êtes une délicieuse bière. – Carl