Заголовок C / C ++ для Java - PullRequest
       22

Заголовок C / C ++ для Java

7 голосов
/ 22 сентября 2010

Есть ли хороший инструмент для генерации java (+ поддержка JNI при необходимости) из заголовочного файла, чтобы библиотека C или C ++ могла использоваться как есть. Вид обратного Джава. Реальная функциональность была бы в C / C ++, Java была бы только подкладкой для определенных пользователей.

Я не эксперт по JNI, но, насколько я понимаю, Джава заставляет вас делать это задом наперед. Это заставляет вас проникать в JNI-измы в коде C, если вы сами не написали слой преобразования. А написание конверсионного слоя вручную - это, по сути, пустая трата времени, так как вся информация находится в заголовочном файле для начала.

Ответы [ 3 ]

3 голосов
/ 22 сентября 2010

Для C вы можете использовать JNA . Вы должны объявлять сигнатуры функций избыточно в Java, но не должны писать какой-либо клейкий код. JNA очень прост в использовании.

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

3 голосов
/ 02 марта 2011

JNAerator делает именно это: он читает заголовки C / C ++ / ObjectiveC и выводит привязки Java, которые опираются на BridJ (C / C ++), JNA (только C) или Rococoa (ObjectiveC, использует JNA).

2 голосов
/ 22 сентября 2010

Похоже, SWIG работает с Java: http://www.swig.org/Doc2.0/Java.html

Возможно, это не совсем то, что вы ищете, так как вам нужно добавить директивы SWIG ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...