Минимальная сокращенная JRE для Windows - программирование
Подтвердить что ты не робот

Минимальная сокращенная JRE для Windows

У меня есть приложение в виде файла jar размером около 2 МБ. По нескольким причинам я должен связать JRE с моим приложением. Когда я создаю MSI с моей банкой и JRE, размер MSI составляет около 30 МБ.

Я ищу коммерческую или бесплатную JRE, которую я могу расслоить, чтобы уменьшить размер моего MSI как можно ниже. Я смотрю 5MB, но даже до 10MB может быть в порядке. Предварительно созданные JRE Binaries были бы замечательными, но не абсолютными должны.

Я просмотрел похожие вопросы, размещенные здесь и здесь.

Многие ответы в этих и других потоках предлагают Excelsior. Я загрузил оценочную версию Excelsior JET и испробовал ее - по нескольким причинам, я думаю, что это не может быть правильным продуктом для меня.

1) Excelsior смотрит на уменьшение следа установленного продукта, а не на установщика. Меня не волнует размер установленного продукта. В основном я смотрю на меньшую загрузку (установщик моего продукта в настоящее время составляет 30 МБ).

2) Помимо всего прочего, Excelsior делает много оптимизаций для кодов для достижения этого - я не хочу, чтобы мой файл jar касался вообще. Я хочу меньшую JRE с моей банкой, как есть. Невозможно отключить некоторые из оптимизаций.

3) Excelsior создает EXE - я особо не ищу этого - я уверен, что мой продукт вызывается через командную строку javaw.exe.

Итак, есть ли какие-либо предложения по моей потребности?

4b9b3361

Ответ 1

Avian и ProGuard - ваши друзья, поскольку у кого-то есть уже упоминавшийся в одном из потоков, с которыми вы связались (это второй комментарий кстати).

С домашней страницы Avian:

Библиотека классов предназначена для того, чтобы как можно меньше сочетаться, позволяя таким инструментам, как ProGuard, агрессивно изолировать минимальный код необходимых для приложения. Это означает меньшие загрузки и более быстрый запуск.

Похоже, именно то, что вам нужно. И если это не поможет вам взглянуть на остальные инструменты, упомянутые в этом потоке.

Ответ 3

Я бы сделал JRE отдельной установкой из Oracle (или вашего предпочтительного поставщика). Вы могли бы загрузить его по мере необходимости, если хотите. Если JRE уже установлен, это будет пустой тратой, чтобы загрузить его снова даже с уменьшенной JRE.

Кстати: я бы не стал возиться с тем, что есть в JRE, потому что

  • AFAIK - это нарушение вашего лицензионного соглашения.
  • Очень сложно получить право, а не удалить класс, который вам может понадобиться в один день.