Вам нужно будет использовать JNI.Java будет полностью кроссплатформенной и может быть одним проектом.Для C ++ вам нужно будет создать вызываемый интерфейс JNI и построить его как динамическую библиотеку.Код должен быть довольно кроссплатформенным, но фактическая сборка будет другой.
В Linux вам нужно собрать как .so и вы, вероятно, будете использовать gcc.В Windows вы, вероятно, будете использовать Visual Studio и создавать .dll.Сборка будет другой.