Если вы используете ZIP и если классы (пакеты) размещены в его корне, то распаковывать его даже не нужно.Вы можете использовать свой архив напрямую:
java -classpath my.zip mypackage.MyClass
Если вы хотите запустить один код Java из другого приложения Java, либо используйте Runtime.exec()
, что просто, но не совсем надежно (вам может понадобиться узнать местоположениеJRE или конкретный путь в системном PATH), или, что более надежно, но сложнее в реализации, используйте загрузчик классов, позволяйте загружать распакованные классы (вы упомянули дешифрование, поэтому загрузчик классов также должен расшифровывать классы перед их загрузкой), выберите нужный класс с помощью этогозагрузчик классов, затем вызовите метод main.