Предыстория: мы разрабатываем физическое приложение, которое будет выполнять большой объем анализа данных, но наше внимание сосредоточено на интеграции физического электронного оборудования.
По сути, я хотел бы иметь возможность вызывать root (это библиотека анализа больших данных из CERN, написанная в C++), написанная на C++ из библиотеки Java. По сути, возможность использовать классы ROOT из Java (и делать это, не теряя много времени на кодирование оболочек JNI) является для нас препятствием (если это будет сложно, скорее всего, мы будем использовать Qt).
Я могу думать о следующих методах
- JNI — как я уже сказал — мы не хотим писать обертки для каждого класса. . .
- JNA — JNA не предоставляет сопоставления C++, а только C.
- SWIG – я им не пользовался, но слышал, что им сложно пользоваться.
Другие вещи, которые могут иметь значение: у нас есть доступ к корневому исходному коду, но мы не хотим его менять. Мы хотим, чтобы результаты были портативными. Мы хотели бы придерживаться бесплатных библиотек. И, как я уже сказал, мы могли бы использовать большую часть кода ROOT с самого начала, без суеты.