Упаковка модулей C ++ в Java - PullRequest
       27

Упаковка модулей C ++ в Java

1 голос
/ 22 января 2020

Я унаследовал проект, изначально написанный в C++. Из-за требований к реализации мне нужно либо переписать проект на языке, основанном на JVM, например Java или Kotlin, либо просто обернуть существующий код в API Java или Kotlin (RESTful).

Существующая кодовая база также запутана с очень старой структурой сетевого моделирования. Поэтому я сильно склоняюсь к тому, чтобы распутать среду моделирования и обернуть код C++, используя что-то вроде JNI и SWIG для реализации в не имитируемой среде.

Мне интересно, если JNI и SWIG по-прежнему являются лучшими доступными вариантами?

Любой совет будет высоко оценен!

1 Ответ

3 голосов
/ 22 января 2020

Обтекание с помощью JNI (или SWIG) требует умного определения API. Смотрите хорошее объяснение здесь . Существуют некоторые фреймворки C ++, которые упрощают операции JNI на стороне C ++, рассмотрим их на раннем этапе, прежде чем вы слишком глубоко инвестируете в управление ссылками. Из того, что вы пишете, может потребоваться также предоставить некоторый Java интерфейс ниже уровня C ++, например, мы используем сетевые API Java на Android, даже из кода C ++.

...