2010-12-08 14 views
19

Incluimos Java 6 JRE con nuestro instalador de aplicaciones para que pueda ejecutarse en cualquier máquina, pero esto hace que la aplicación sea un poco más pesada. Entonces, estamos planeando reducir el tamaño del JRE. Si alguien ha realizado este tipo de tarea, ¿puede proporcionar una guía para seguir adelante con esto?Reducción del tamaño de JRE

Respuesta

21

Mire el archivo README en el directorio JRE. La sección 'Archivos y directorios opcionales' enumera una serie de archivos que pueden eliminarse de Oracle/Sun JRE si lo está empaquetando con su aplicación.

Utilizo un archivo de compilación Ant para copiar el JRE de la ubicación de instalación del sistema en el directorio del paquete al crear una instalación. Ponga la lista de archivos que desea excluir en un archivo separado y utilizar el atributo '' excludesfile a cargar esta lista: jre_excludes.properties

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

Ejemplo de archivo:

# 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

en la lista de archivos opcional dice que java.exe también es opcional. así que sin esto, ¿cómo puedo comenzar mi aplicación? – asela38

+0

puede compartir su jre_excludes.properties – asela38

+4

Creo que java.exe es opcional porque puede usar javaw.exe en su lugar. javaw puede ser preferido ya que no abre una ventana de consola. – AngerClown

0

¿Está tratando de reducir el tamaño de un JRE estándar? No hagas eso. Puede optar por agrupar un JRE alternativo que podría ser más pequeño. Se puede encontrar una lista en this Wikipedia page. Como siempre, tenga cuidado con los problemas de compatibilidad y pruebe su aplicación a fondo.

Otra manera, y más segura, es simplemente requerir una instalación de un JRE en la máquina de destino.

0

Algo de información actualización desde java 8 existe una herramienta oficial de Oracle llamada jrecreate para la creación de pequeños paquetes JRE integrados.

0

Por mi aplicación de escritorio Java 8 Actualización 144 que excluye los 2 grandes archivos de Java FX:

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

el JRE con cremallera es de 49 MB en lugar de 66 MB.

Para mí, este es un compromiso aceptable entre el tamaño reducido y la complejidad de compilación añadida (y posibles errores).

Cuestiones relacionadas