J2ME по конструкции платформы имеет недостатки, в которых пользователям приложений предлагается выбрать «да» или «нет» для любой попытки использовать какой-либо из защищенных API. Некоторые устройства выдают такие предупреждения таким образом, что заставит конечного пользователя подумать, стоит ли ему идти вперед или остановить его там. С помощью цифровой подписи приложения можно уменьшить количество предупреждений до уровней в зависимости от реализации устройства KVM и количества используемых безопасных API.
На некоторых устройствах, имеющих Symbian OS Feature Pack 1, запросы продолжаются, даже если код подписан.
Такое поведение J2ME делает приложения менее дружелюбными для разработчиков и менее удобными для пользователей. Я думаю, что это неправильная стратегия и модель, принятая SUN. Существует некоторая вещь, называемая Verified by Java, в которой вы можете подписать свое приложение с помощью сертификата, что позволит приложению работать бесперебойно и без запросов на устройстве конечного пользователя, но, к сожалению, процесс получения этой сертификации дорог и не практичен. Единственное преимущество платформы J2ME заключается в том, что она позволяет меньше шансов на запуск кода вируса или вредоносного кода на устройстве конечного пользователя. Я думаю, что компромисс между безопасностью и простотой использования пользователей не работает должным образом, и именно поэтому мы не видим очень хорошие приложения в J2ME.
В отличие от Android, например, позволяет пользователю видеть все разрешения до установки приложения, и пользователь не беспокоится во время выполнения, когда используются эти безопасные API. Вот почему мы видим миллионы приложений там, а не в J2ME. Мы всегда можем сказать, что этот подход привел ко многим типам вредоносных приложений на конечных устройствах Android, но так оно и есть, людям нужно, чтобы приложения работали без сбоев, и им это нравится.