2015-11-10 22 views
0

При распространении приложения Java другим пользователям его можно развернуть как файл JAR для удобства выполнения. Но есть ли способ изменить класс Java/часть кода после развертывания без повторного возврата всего приложения? Если у вас есть приложение с 10 классами, где 9 завершены, но нужно настроить в соответствии с индивидуальным случаем. Каким будет самый простой способ изменить только один класс в приложении?Изменение кода Java после развертывания

+0

Нет, нет. Вы должны переупаковать. – duffymo

+0

как сайт обновления eclipse? – ergonaut

+0

Это звучит так же, как «Мне нужны перезаряжаемые модули». Что является территорией OSGi. – Gimby

ответ

1

Возможно, вы хотите использовать java web start. Если ваш пользователь запускает приложение через веб-запуск java, он автоматически обновляется, если доступны обновления.

EDIT Он не обеспечивает детализацию на основе классов, но я считаю, что это не настоящая проблема. Однако он обеспечивает детализацию на основе jar, т. Е. Более новая версия jar загружается только в том случае, если она была изменена.

+0

Серверы приложений Java EE, которые я использую, будут только горячим повторным развертыванием столько раз, прежде чем получить ошибку из памяти. Лучше переупаковать, на мой взгляд. – duffymo

+0

@duffymo, я согласен с вами. Однако я не думаю, что OP * действительно * хочет иметь возможность перезагрузить один конкретный класс. ИМХО это был просто пример. – AlexR

+0

Фактически, в моем случае это действительно обновление одного конкретного класса в зависимости от случая. – neza

0

Нет, нет.

Вы должны переупаковать или разработать тот, который должен быть настроен для настройки во время выполнения. Если вы можете изменить его, используя базу данных конфигурации и фабрику, которая будет единственным способом сделать это без переупаковки.

0

В теории можно создать еще один jar для индивидуальных классов и поместить его в пути к классам перед тем старой банки, и JVM будет загружать настроенные классы. Но это просто ищет проблемы ...

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

+0

JVM не собирается автоматически обновлять обновленные классы. Как только класс загружается загрузчиком классов, он должен оставаться до тех пор, пока не будет выгружен каким-либо механизмом. Внесение новой копии того же класса в другую банку не поможет. – Gimby