2010-02-16 8 views
13

J'ai créé un fichier JAR et je veux l'exécuter sur un client. J'ai quelques questions:Comment puis-je convertir un fichier JAR dans un fichier EXE?

  1. Comment puis-je convertir le fichier JAR dans un fichier EXE?
  2. Comment puis-je chiffrer le contenu du fichier JAR? Le fichier jar pourrait être extrait avec WinRAR et les classes pourraient être décompilées avec n'importe quel décompilateur Java.
  3. Comment puis-je créer un programme d'installation? Mes clients n'ont pas de JVM et je ne veux pas expédier JDK ou JRE, car ils ont une grande taille.
+0

Si vous convertissez le jar en exe (sur windows je suppose?) Il tirera probablement la moitié du jre dans l'exe pour satisfaire les dépendances. – extraneon

+0

http://yuvadeveloper.blogspot.com/2009/03/convert-jar-files-to-exe.html –

Répondre

13
  1. Voir ce lien: Java to Exe. Il explique également quelles sont les raisons valables de le faire, et quand vous ne devriez pas.

  2. Vous ne pouvez pas vraiment crypter les binaires car la machine doit les comprendre. Cela dit, un fichier exécutable optimisé est très difficile à décompiler, alors que les fichiers de classe sont simples.

  3. Si vous avez un exe, il y a suffisamment d'installateurs.

8

JSmooth est une application qui envelopper votre pot 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 à

http://jsmooth.sourceforge.net/

2

Comme pour 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 livrés avec JDK, car cela détruirait l'indépendance de la plate-forme. (Voir les autres réponses fournissant des liens vers ces outils tiers)

Comme pour 3): Utilisez InnoSetup pour créer le programme d'installation. Incluez JRE dans la configuration et laissez InnoSetup l'installer à la volée.

+0

Je ne vois pas vraiment l'indépendance de la plateforme comme une exigence. Vous ciblez généralement un public, pas une plate-forme. S'ils ont standardisé un environnement, vous pouvez le cibler et le tester. – extraneon

+0

Je voulais dire qu'un tel outil ne serait pas livré avec JDK pour des raisons d'indépendance de la plate-forme. JDK fournit des outils pour créer et empaqueter des applications pour n'importe quelle plate-forme sur n'importe quelle plate-forme. –

2

Vous ne pouvez pas empêcher la décompilation. Le mieux que vous puissiez faire est de le rendre plus difficile ou plus long à le faire. En réponse à votre question, je crois que vous pouvez utiliser gcj pour compiler Java en fichiers EXE.

+2

+1 pour souligner la futilité d'essayer d'empêcher l'ingénierie inverse. –

1

1) J'ai récemment essayé le programme jarToExe et l'aime. Certaines fonctionnalités sont:

  • version de base gratuite ou très pas cher (30 $) pour « entreprise »
  • possibilité d'avoir des fenêtres Liste des tâches de gestion le nom de votre application au lieu de Java par défaut.exe
  • obfuscation supplémentaire
  • de contrôle d'exécution que Java est installé

2) Vous pouvez le rendre plus difficile à désosser en utilisant proguard ou autre obfuscateur

3) nsis est un très puissant, langage de script gratuit pour créer des installateurs Windows. Bonne documentation sur le wiki du site et support sur le débordement de pile aussi.

1

Launch4j travaillé pour moi alors que certains outils ne fonctionnaient pas. Il a également un bon guide here.

Espérons que cette aide!

Questions connexes