2010-12-08 34 views
19

Nous regroupons Java 6 JRE avec notre programme d'installation d'applications afin qu'il puisse être exécuté sur n'importe quelle machine, mais cela rend l'application un peu plus lourde. Nous prévoyons donc de réduire la taille de JRE. Si quelqu'un a fait ce genre de tâche, pouvez-vous s'il vous plaît fournir des conseils pour aller de l'avant avec cela?Réduction de la taille de JRE

Répondre

21

Regardez le fichier README dans le répertoire JRE. La section 'Fichiers et répertoires facultatifs' répertorie un certain nombre de fichiers qui peuvent être supprimés de l'Oracle/Sun JRE si vous l'empaquetez avec votre application.

J'utilise un fichier de construction Ant pour copier le JRE de l'emplacement d'installation du système dans le répertoire du package lors de la création d'une installation. Mettez la liste des fichiers que vous voulez exclure dans un fichier séparé et utiliser l'attribut « excludesfile » pour charger cette liste:

<copy todir="${deployed_jre_dir}"> 
    <fileset dir="${system_jre_dir}" excludesfile="jre_excludes.properties" 
</copy> 

Exemple de fichier jre_excludes.properties:

# per the README from the JRE, these files are for the browser plugin and are not needed otherwise 
#bin/javaw.exe 
bin/javaws.exe 
bin/javacpl.exe 
bin/jucheck.exe 
bin/jusched.exe 
bin/wsdetect.dll 
bin/NPJPI*.dll 
bin/NPJava* 
bin/NPOJI610.dll 
bin/RegUtils.dll 
bin/axbridge.dll 
bin/deploy.dll 
bin/jpicom.dll 
bin/javacpl.cpl 
bin/jpiexp.dll 
bin/jpinscp.dll 
bin/jpioji.dll 
bin/jpishare.dll 
lib/deploy.jar 
lib/plugin.jar 
lib/javaws.jar 
lib/javaws/messages* 
lib/javaws/miniSplash.jpg 
bin/new_plugin** 
bin/jureg* 
bin/ssv* 
bin/jqs* 
bin/jp2* 
lib/deploy/**/* 

# if you do not need any RMI stuff 
# wildcard to catch .exe files on Windows 
# note rmi.dll is not excluded, which is needed by jconsole; add rmi.dll if you do not need jsonsole 
bin/jbroker* 
bin/java-rmi* 
bin/rmid* 
bin/rmiregistry* 
bin/tnameserv* 
bin/orbd* 
bin/servertool* 

# do not include QuickTime 
# this will be in the jre dir for machines that have QT installed 
lib/ext/QTJava.zip 
+0

dans la liste de fichiers optionnelle, il est dit que java.exe est également optionnel. donc sans cela comment commencer mon application. – asela38

+0

pouvez-vous partager votre jre_excludes.properties – asela38

+4

Je pense que java.exe est facultatif, car vous pouvez utiliser javaw.exe à la place. javaw peut être préféré car il n'ouvre pas une fenêtre de console. – AngerClown

0

Vous essayez de réduire la taille d'un JRE standard? Ne fais pas ça. Vous pouvez choisir de regrouper un JRE alternatif qui peut être plus petit. Une liste peut être trouvée sur this Wikipedia page. Comme toujours, méfiez-vous des problèmes de compatibilité et testez votre application à fond.

Un autre moyen, et plus sûr, consiste simplement à exiger l'installation d'un JRE sur la machine cible.

0

Quelques informations de mise à jour: depuis java 8 il existe un outil Oracle officiel appelé jrecreate pour la création de petits packages JRE incorporés.

0

Pour mon application de bureau Java 8 Mise à jour 144 I Excluez les 2 grands fichiers FX Java:

bin/jfxwebkit.dll // ~34 MB unpacked 
    lib/ext/jfxrt.jar // ~17 MB unpacked 

Le jre compressé est de 49 Mo au lieu de 66 Mo.

Pour moi, c'est un compromis acceptable entre la taille réduite et la complexité de construction ajoutée (et les bogues potentiels).