Не повезло мне, я попробовал
Jasper Reports действительно включает банку с основными функциями для предварительного просмотра и печати отчетов. Он упакован как jasperreports-xxx-applet.jar, его объем составляет около 350 КБ.
Если вы не можете найти лучшего решения, можно создать урезанный файл JAR для отчетов Jasper. Предполагается, что инструмент GenJar может создавать файл JAR на основе его статических зависимостей.
Давным-давно я использовал инструмент обфускации Zelix "Classmaster", который давал вам возможность удалять классы, которые не использовались. Я думаю, что он мог бы даже удалить неиспользуемые методы, хотя моя память немного туманна. (Я использовал его в продукте с закрытым исходным кодом ... который с тех пор исчез в "черной дыре" IP.)
РЕДАКТИРОВАТЬ: другой вариант - ProGuard , который выполняет обфускацию и удаление, как Classmaster, за исключением того, что это открытый исходный код. (К сожалению, они, кажется, неправильно настроили ссылку на свой сайт SF. Но ссылка выше работает.)
Конечно, если Jasper Reports использует Class.forName ()
, вам нужно будет идентифицировать все соответствующие классы и добавить их как «корневые» зависимости для используемого инструмента удаления. Кроме того, вам нужно будет изучить лицензию Jasper Reports, чтобы убедиться, что вам разрешено «распространять» вырезанный файл JAR.
Почему 2 Мбайт слишком много для серверной библиотеки? Docmosis имеет размер jar-файла менее 500 КБ, но требует наличия OpenOffice на сервере, поэтому он в одном отношении меньше, а в другом - больше. Java не загрузит 2 МБ Jasper в память, если вы не используете все функции / классы.
Я знаю, что это немного поздно, но с учетом ваших требований кажется, что идеально подходит решение для отчетности, которое компания, в которой я работаю, выпускает: i-net Clear Reports (раньше i-net Crystal-Clear).
Ознакомьтесь с ним и расскажите нам, что вы думаете.