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

Уменьшение размера JRE в пакете JavaFx

Я создал приложение JavaFX, для него я связал его как автономное автономное приложение, используя закрытую копию Java Runtime.

Но это стало моим размером приложения 166 МБ, в котором размер 146 Мб для jre.

Как уменьшить размер моего приложения или сказать размер пакета Runtime JRE?

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

Итак, как я могу удалить неиспользуемые файлы/папки/модули из Runtime JRE для моего приложения?

сказал, что

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

Поэтому по умолчанию он не добавляет все файлы в jre, в этом случае мое приложение не работает. Application.jar работает нормально, поскольку использует системную банку. Поэтому я добавляю все повторно создаваемые файлы на этапе последующей обработки.

Спасибо

4b9b3361

Ответ 1

У проекта Jigsaw есть определенная надежда на помощь в этом.

Но он скорее всего появится в Java 9.

Итак, насколько я понимаю из вашего сообщения, вы не можете запустить приложение с уменьшенным размером JRE, который предоставляет JavaFX. Кроме того, вы проделали шаги, описанные ниже здесь, и вы все еще не можете запустить приложение.

Многие приложения могут работать очень хорошо с ограниченным количеством классов, доступных в упаковке JavaFX JRE. Возможно, вы можете изучить, какие библиотеки Java вы используете, что вызывает эту проблему. Затем вы можете изучить альтернативы этим библиотекам. Наконец, вам нужно будет проверить, являются ли эти альтернативные библиотеки больше или меньше, чем сокращение места, обеспечиваемое сокращением упаковки JavaFX.

Ответ 2

Если вы используете JavaFX ant задачи для сборки пакета, то просто определите атрибут basedir как пустую строку в элементе платформы, как в этом примере:

        <fx:platform basedir="">
            <fx:jvmarg value="-Xmx768m" />
        </fx:platform>

Это упакует ваше приложение и его зависимости, но не сам JRE.

Ответ 3

К сожалению, удаление неиспользуемых файлов невозможно с помощью Java 8.

Чтобы уменьшить размер приложения, вы можете использовать собственные установщики ОС.

Установщик Windows Exe должен иметь размер около 50 МБ, а Установщик Mac OS X DMG около 60 МБ.