Je souhaite créer un fichier JAR et l'exécuter sur un ordinateur client. J'ai quelques questions à poser:
Voir ce lien: Java to Exe . Il explique également quelles sont les raisons valables de le faire et quand vous ne devriez pas.
Vous ne pouvez pas vraiment chiffrer les fichiers binaires car la machine doit les comprendre. Cela dit, un exécutable optimisé est très difficile à décompiler, alors que les fichiers de classe simples sont plus simples.
Si vous avez un exe, il y a assez d'installateurs.
JSmooth est une application qui va emballer votre bocal dans un exe
il vous permet également de vérifier si la version correcte de JRE est disponible sur le système que vous déployez.
Quant à 1): Je suppose que vous ne pouvez pas. Il existe peut-être des outils, mais vous ne pouvez pas le faire avec des outils standard fournis avec JDK, car cela détruirait l'indépendance de la plate-forme. (Voir les autres réponses fournissant des liens vers de tels outils tiers)
En ce qui concerne 3): utilisez InnoSetup pour créer le programme d'installation. Incluez JRE dans la configuration et laissez InnoSetup l'installer à la volée.
Vous ne pouvez pas empêcher la décompilation. Le mieux que vous puissiez faire est de le rendre plus difficile ou plus long. Cependant, pour répondre à votre question, je pense que vous pouvez utiliser gcj pour compiler Java en fichiers EXE.
Peut-être Excelsior JET satisfera vos besoins.) IMHO produit très mature.
1) J'ai récemment essayé le programme jarToExe et je l'aime bien . Certaines fonctionnalités sont:
2) Vous pouvez rendre plus difficile l’ingénierie inverse en utilisant proguard ou un autre obfuscateur
3) nsis est un langage de script gratuit et très puissant pour la création d’installateurs Windows. Bonne documentation sur le site wiki et prise en charge du débordement de pile également.
Nous utilisons un lanceur d’installation 7Zip SFX. Ceci est un outil simple open source. Il va emballer votre jar, une version de jre, de sorte qu'il n'est pas obligatoire que jre soit installé sur les systèmes d'installation et une version à extraction automatique de 7Zip. Voici un tutorial qui explique comment lier et GitHub link Le projet n'est pas maintenu mais fonctionne parfaitement (testé jusqu'à Java 1.8)