Просто дикая идея, но вы можете поиграть с пользовательским загрузчиком классов, который загружает файлы из вашего .jar
, которые иначе не распознаются как классы.
Например, вы можете постобработать файлы классов, зашифровав их исохранение с вашим собственным расширением файла, затем загрузка и дешифрование их из фляги вашим пользовательским загрузчиком классов из «основного» класса, который виден пользователям класса.(предостережение; я никогда не пытался сделать что-то подобное сам: -))
Другой метод (если база кода не слишком велика) может состоять в том, чтобы разрабатывать ваши классы как обычно, запускать свои тесты наСтруктура пакета и в качестве последнего шага перед упаковкой используйте скрипт (perl) для перестройки вашего основного класса, вставив все остальные классы в качестве закрытых статических внутренних классов и перестройте их.Использование этого преобразования в качестве шага перед пакетом означает, что вы можете развиваться в разумной структуре, скрывая классы реализации в jar.