Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Пример файла 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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

Зарезервированный jre составляет 49 МБ вместо 66 МБ.

Для меня это приемлемый компромисс между уменьшенным размером и добавленной сложностью сборки (и потенциальными ошибками).