Да, я использовал их много времен. Битовое жонглирование важно на встроенных аппаратных средствах, где битовые маски очень распространены. Также важно в игровом программировании при необходимости в каждом последнем бите производительности.
Редактирование: кроме того, я использую их много для управления битовыми массивами, например, изменения глубины цвета или преобразования RGB <-> BGR.
Существует конструктор для ScriptEngineManager, который принимает загрузчик классов. Загрузчик классов используется для загрузки реализации механизма сценариев. Поскольку классы наследуют свои загрузчики классов, механизм сценариев и любые создаваемые им объекты также должны использовать этот загрузчик классов.
Этот загрузчик классов должен отрицать существование любых классов, не внесенных в белый список.
Завершите это настраиваемым SecurityManager так что вы можете основывать проверки доступа на том, какой загрузчик классов используется.
Изменить: Вот статья, которую я нашел на Sandboxing Rhino в Java . Большая часть этого также должна относиться к JSR-223. Реализация Sun - это Rhino с модификациями, поэтому могут быть некоторые отличия.
Можно ли запустить часть вашего приложения, для которой требуется механизм сценариев, в отдельной JVM? Вы можете запустить JVM механизма сценариев с другим путем к классам (и менеджером безопасности), а затем использовать некоторую форму облегченной передачи сообщений между двумя JVM.