LINUX.ORG.RU

облегчить java

 


1

2

проблема: допустим, написан скрипт на 3 строчки на java. Потом нужно передать его пользователям, и чтобы он точно запустился, вместе со скриптом надо бандлить JDK. Ну вы понели да, 5 двухкилобайтных хэлловорлдов в таком исполнении займут 1 Гигабайт.

вопросы:

1. можно ли как-то автоматически обрезать openjdk/jre так, чтобы там осталось только то, что я действительно хочу использовать? Типа, у меня в программе нет никакого пути, который использовал бы вот эти 30 мегабайт классов, поэтому сделаем им rm-rf.

2. можно ли как-то в intellij idea (или eclipse) задать в качестве целевой платформы именно JRE, и чтобы оно дичайше кричало, стонало, и красило красным все случайно использованные фичи из JDK? (Если прикладывать JRE вместо JDK, 5 скриптов займут 250 мегабайт). (Пока даже не задумывался, что это за фичи такие... ну например, если захочу поднять какой-то веб-сервис с JSP на Jetty, то для запуска потребуется JDK, верно?)

★★★★☆
Ответ на: комментарий от stevejobs

для сборки JSP тулзы как раз и нужны, поэтому я сразу вспомнил Jetty.

все вменяемые сервлет-контейнеры давно таскают с собой эклипсовый компилятор на случай если их будут запускать не под JDK.

maloi ★★★★★
()
Ответ на: комментарий от Debasher

а как по-твоему апп-сервера устроены? именно так.

maloi ★★★★★
()

можно ли как-то в intellij idea (или eclipse) задать в качестве целевой платформы именно JRE, и чтобы оно дичайше кричало, стонало, и красило красным все случайно использованные фичи из JDK?

конечно можно, в эклипсе можно даже выбрать стандарт, под который компилить, и тогда он будет ругаться на все не-входящие в стандарт классы, которые ты используешь (com.sun... и прочее)

maloi ★★★★★
()
Ответ на: комментарий от Debasher

OSGI должен уметь примерно то что ты хочешь, а можно попробовать и самому запилить, главное класс-лоадеры изолировать.

maloi ★★★★★
()
Ответ на: комментарий от Debasher

самый тупой вариант:загружаешь jar, вытаскиваешь из манифеста main class, Class.forName(«name of you main class»).invoke(«main», null, new String[]);

это по памяти так что названия методов могут отличаться, но так в продакшене писать нельзя

Deleted
()

jre занимает не очень большой размер. если размер так уж критичен, то можно взять постарее jre 1.5 там 70 метров распакованного.

мы инсталятор так делали - сам инсталятор на ant, и bat файл запуск его.

vtVitus ★★★★★
()
Ответ на: комментарий от Midael

Джавагосподам 3к $ не помеха?

Это для чужих, а так же всяких мейнстимных консерваторов-гетералистов. Свои получают хорошие скидки и могут платить натурой.

anonymous
()
Ответ на: комментарий от sT331h0rs3

а Windows очень популярна. Плохой пример.

Я так понял, что речь о популярности «системы пакетов», а не самой ОС.

Но ведь в OS X есть brew

Из коробки? Нет.

DarkEld3r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.