Я бы просто посоветовал не делать этого.
Не реализуйте вещи в C / C ++ "для скорости". Выигрыш в производительности не , вероятно, будет таким же большим, как вы ожидаете; например по сравнению с реализацией в Java с использованием лучших методов проектирования и методов повышения производительности.
Не пытайтесь склеивать много языков вместе. Вы настраиваете себя на множество проблем переносимости, трудностей в отладке и проблем надежности; например из-за ошибок C / C ++, приводящих к сбою JVM. Кроме того, существуют проблемы с производительностью при соединении между языками, и могут возникнуть непредвиденные узкие места. (Например, вы можете обнаружить, что ваш C / C ++ должен быть запущен однопоточным из-за проблем с многопоточностью, и поэтому вы не можете воспользоваться преимуществами многопоточности Java в типичной многоядерной системе.)
Вместо этого я советую вам искать библиотеки, которые позволят вам реализовать все приложение на одном языке. Если это невозможно, спроектируйте его так, чтобы разные языковые компоненты представляли собой разные исполняемые файлы / процессы, взаимодействующие через какой-либо RPC, обмен сообщениями или что-то еще.