Я разработал модуль для Java-проекта. Модуль зависит от внешней библиотеки (fastutil
). Проблема в том, что файл fastutil.jar
в два раза тяжелее всего самого проекта (14 МБ). Я использую только крошечное подмножество классов из библиотеки. Теперь модуль завершен, и в будущем никто не сможет его продлить. Есть ли способ, которым я мог бы извлечь только соответствующий класс в fastutil_small.jar
, чтобы другим не нужно было загружать весь этот лишний вес?Уменьшить размер внешнего файла jar
ответ
Инструменты обфускации, такие как ProGuard, обычно предоставляют возможность удаления неиспользуемых классов (и даже полей и методов) из файла jar. Вы должны быть осторожны, чтобы убедиться, что все еще работает », хотя, возможно, вы используете рефлектор для доступа к классам или методам, которые ProGuard не может проанализировать.
Вы можете использовать только эту функцию и уже получают совсем немного экономии
Или вы могли бы объединить его с другими экономии пространства методов обфускации (например, класс и метод переименования), чтобы сэкономить еще больше места на стоимости сложнее отладки (ваши трассировки стека станут сложнее анализировать).
+1 первые 5 слов - это именно то, о чем я думал, так как я читал этот вопрос –
от инструкций proguard: «ProGuard требует, чтобы библиотеки jars (или войн, ушей, почтовых индексов или каталогов) входных банок были указано. Это, по сути, библиотеки, которые вам нужны для компиляции кода. ProGuard использует их для восстановления зависимостей классов, необходимых для правильной обработки. Баки библиотеки всегда остаются неизменными. Вы все равно должны поместить их в путь класса к вашему окончательному приложению ». Но уменьшение размера файлов jar библиотеки - именно то, что я хочу (или я использую неправильный словарь?). Что мне не хватает? –
@joe: вы можете легко обойти это, указав библиотеку через '-injars', а не через' -libraryjars' –
Да, одно сыроедение должно иметь резервную копию вашей оригинальной банки. затем удалите все неиспользуемые файлы классов из банки. и могут быть некоторые внутренние ссылки на другие классы, которые вы можете добавить по мере необходимости. т.е. во время выполнения он может вызывать исключение класса, не найденное, поэтому вы можете добавить этот класс из исходной банки в эту банку.
С installation instructions из fastutil:
Обратите внимание, что файл банка огромен, в связи с большим числом классов: если вы планируете отправить собственный банку с некоторыми классами fastutil включены, вы должны смотреть на AutoJar (также доступно в JPackage) для автоматического извлечения необходимых классов.
Да, я сделал rtfm :) Я просто не смог ничего с этим сделать (нооб, помните? :)) –
ну, оказывается, все, что я должен был сделать, это попробовать три раза. –
Поскольку fastutil - это программное обеспечение с открытым исходным кодом LGPL, вы можете просто скопировать соответствующие исходные файлы в проект и удалить этот файл jar. Затем компилятор скажет вам, есть ли у вас все необходимые файлы. Просто держите пакеты такими, какие они есть, и верните копию файла лицензии fastutil.
- 1. Уменьшить размер файла jar
- 2. Уменьшить размер файла изображения
- 3. Уменьшить размер файла pdf
- 4. Уменьшить размер файла Excel
- 5. Уменьшить размер файла .png
- 6. jsPDF - уменьшить размер файла
- 7. Уменьшить размер файла изображения
- 8. Уменьшить размер файла ipa
- 9. Java .jar размер файла
- 10. Уменьшить/уменьшить размер JAR Java-проекта, использующего JNA?
- 11. Как уменьшить размер файла apk?
- 12. уменьшить размер файла, созданного DOMPDF
- 13. Уменьшить размер двоичного файла Snap?
- 14. Как уменьшить размер .tiff файла
- 15. Как уменьшить PDF размер файла
- 16. Как уменьшить размер скомпилированного файла?
- 17. Как уменьшить размер файла уха
- 18. Как уменьшить размер файла CSS?
- 19. Как уменьшить размер файла шрифта?
- 20. Magick.NET уменьшить размер файла gif
- 21. Как уменьшить размер файла APK
- 22. Android - Уменьшить размер файла изображения
- 23. Как уменьшить размер текстового файла?
- 24. Уменьшить размер выходного файла AVCaptureMovieFileOutput
- 25. Уменьшить размер файла .png swift
- 26. Уменьшить размер файла приложения asp.net
- 27. Iphone уменьшить Размер файла изображения
- 28. Уменьшить размер файла в CSS?
- 29. Загрузка объекта JPA из внешнего файла Jar
- 30. Безопасность внешнего файла jar в GWT
На самом деле, что вам нужно? – Venkat
Ну, чтобы добавить мой модуль в проект. это несколько относительно небольших пакетов Java. все, что я хочу, это то, что моя зависимость от нескольких классов от «fastutil» не должна увеличивать размер проекта в три раза. –