Уменьшение размера JRE - PullRequest
       8

Уменьшение размера JRE

23 голосов
/ 08 декабря 2010

Мы связываем Java 6 JRE с нашим установщиком приложения, чтобы его можно было запускать на любой машине, но это делает приложение немного тяжелее. Таким образом, мы планируем уменьшить размер JRE. Если кто-то выполнил такую ​​задачу, не могли бы вы дать руководство, чтобы двигаться вперед с этим?

Ответы [ 4 ]

24 голосов
/ 08 декабря 2010

Посмотрите файл README в каталоге JRE.В разделе «Необязательные файлы и каталоги» перечислено несколько файлов, которые можно удалить из JRE Oracle / Sun, если вы упаковываете их в свое приложение.

Я использую файл сборки Ant для копирования JRE из системыместо установки в каталог пакета при создании установки.Поместите список файлов, которые вы хотите исключить, в отдельный файл и используйте атрибут 'excludefile', чтобы загрузить этот список:

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

Пример файла jre_exclude.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
3 голосов
/ 03 августа 2017

Некоторая информация об обновлении: начиная с Java 8 существует официальный инструмент Oracle под названием jrecreate для создания небольших встроенных пакетов JRE.

2 голосов
/ 28 августа 2017

Для моего настольного приложения Java 8 Update 144 я исключаю 2 больших файла Java FX:

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

Размер сжатого файла составляет 49 МБ вместо 66 МБ.приемлемый компромисс между уменьшенным размером и сложностью сборки (и потенциальными ошибками).

1 голос
/ 08 декабря 2010

Вы пытаетесь уменьшить стандартный размер JRE? Не делай этого. Вы можете выбрать альтернативную JRE, которая может быть меньше. Список можно найти на этой странице Википедии . Как всегда, остерегайтесь проблем совместимости и тщательно протестируйте свое приложение.

Другой, более безопасный способ - просто установить JRE на целевой машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...