Вы можете отключить интернирование большинства строк, не используя строковые литералы в своем коде. Вместо этого вы можете использовать char [] и создавать Strings из них. Э.Г.
String hi = new String(new char[] { 'h', 'i' }); // not interned.
Как вы упомянули, это просто создает работу для вас и только ухудшит положение.
если я выдаю OSGI-фреймворк, и любой может добавить любое количество собственных комплектов, а интернирование строк каждого комплекта может полностью испортить мои параметры настройки
Если они добавляют пакеты, им может потребоваться более высокая, максимальная память, постоянный размер, прямой объем памяти, другое соотношение NewSize, даже другой GC. Единственный способ предотвратить это - запретить любые другие модули в вашем контейнере OSGi.
Или вы можете просто сказать, что если вы добавляете пакеты, вам может потребоваться изменить параметры настройки.