Как я могу использовать код C ++ в JVM? - PullRequest
1 голос
/ 10 февраля 2012

Я работаю с проектом, который был построен на C ++. В этом проекте есть публичные классы, которые содержат публичные методы, которые я хотел бы вызвать из моего кода Java. Какой лучший способ сделать это? Я предполагаю, что хотел бы что-то, что скомпилировало бы код C ++ до байт-кода.

Я видел пару инструментов, которые делают что-то подобное, но некоторые из них не обновлялись в течение очень долгого времени, а другие кажутся неподходящими для этой задачи. Являются ли какие-либо из этих инструментов достаточно зрелыми, чтобы их можно было использовать для приложений профессионального уровня? Хотя открытый исходный код предпочтительнее, я в равной степени готов рассмотреть коммерческие инструменты.

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

В настоящее время я использую пакет с именем javacpp .Я считаю, что стоит взглянуть на

1 голос
/ 10 февраля 2012

Соединение C ++ с Java с использованием JNI (Java Native Interface) на самом деле довольно просто. Недостатком является то, что вам нужно скомпилировать часть C ++ для платформ, с которыми вы хотите, чтобы код работал.

У меня есть пример вызова Java из C ++ в этом посте Может ли C ++ вызывать код Java? но вызов C ++ из Java очень похож.

1 голос
/ 10 февраля 2012

Всегда есть старый резерв, JNI , известный тем, что он медленный и очень сложный в использовании.

JNA - это то, что я никогда не использовал лично, но "Я слышал хорошие вещи "и похоже, что это может соответствовать вашему счету.

Альтернативным и потенциально лучшим подходом было бы реструктурировать ваш код C ++ как сервис, который прослушивает, например, сокеты TCP или UNIX.Это увеличило бы переносимость, позволило бы подключиться к нему из большинства языков и не зависело от Java.

...