JCA (сборка карты Java) - это текстовое представление файла CAP.
Файл CAP является файлом контейнера, и каждый компонент в этом контейнере является файлом сам по себе. Он содержит информацию о преобразованном пакете, где каждый компонент содержит информацию о преобразованном пакете. Этот файл будет использоваться клиентом GP (или чем-то похожим) для загрузки байт-кода (в файле cap) на карту.
Если вы конвертируете апплет для возможной установки на смарт-карту, вы можете сгенерировать файл CAP и файл JCA. Затем вы можете просмотреть файл JCA, чтобы проверить содержимое файла CAP в удобной для чтения форме.
Итак,
, какой из них следует использовать для наиболее точного определения размера моих кодов?
blockquote>Условно говоря, размер обоих файлов (CAP & amp; JCA) будет меняться при любом изменении исходного кода, но вы можете проверить размер файла CAP для этой цели.
Больше информации о CAP & amp; JCA можно найти из. https://www.oracle.com/technetwork/java/embedded/javacard/documentation/applet-136808.html#capfl
Вы могли бы рассмотреть запуск Вашего пружинного приложения в платформе OSGI.
Я полагаю, что DMServer является основанным на модуле сервером JAVA-приложения, который разработан для выполнения предприятия JAVA-приложения и приводимые в действие Spring приложения, на основе OSGI
Можно найти больше деталей в этом Привет, OSGi, Части 2: Введение в статью Spring Dynamic Modules, в особенности как использовать Spring DM для динамичной установки, обновляет и удаляет модули в рабочей системе.
Примечание: то, когда Вы говорите о "плагинах, может быть обновлено или установлено, не перезапуская приложение", OSGI является первой платформой кандидата, которая приходит на ум.
Это - все о модуляризации приложений в меньшие пакеты.
Каждый пакет является динамично загружаемым набором с сильной связью классов, банок и конфигурационных файлов, которые явно объявляют их внешние зависимости (если таковые имеются).
Возможно, самый простой подход должен загрузить каждый плагин своим собственным загрузчиком класса. Затем отбросьте загрузчик класса и создайте новый для перезагрузки плагина. Вы захотите init () и уничтожите () методы в сменном API для разрешения шанса для функциональности типа запуска/завершения работы.
Это также имеет преимущество изоляции плагинов друг от друга.
URLClassLoader является Вашей начальной точкой для этого. Общее представление состоит в том, что Вы обеспечиваете суперкласс XxxPlugin, который разделяет на подклассы любой плагин. Рассмотрите пример Апплета, который является по существу подключаемым модулем графического интерфейса пользователя (или Midlet, и т.д.).