2010-09-22 13 views
7

Czy jest jakieś dobre narzędzie do generowania java (+ JNI w razie potrzeby wsparcia) z pliku nagłówkowego, dzięki czemu biblioteka C lub C++ może być używana tak jak jest. Rodzaj odwrotnej strony javy. Prawdziwa funkcjonalność byłaby w C/C++, Java byłaby tylko podkładką dla niektórych użytkowników.Nagłówek C/C++ do java

Nie jestem ekspertem od JNI, ale z tego, co widzę, Javah zmusza cię do zrobienia tego z powrotem. Wymusza to, że JNI-ismy przenikają niepoprawnie do kodu C, chyba że sam napiszesz warstwę konwersji. Ręczne pisanie warstwy konwersji jest w zasadzie stratą czasu, ponieważ wszystkie informacje znajdują się w pliku nagłówkowym.

Odpowiedz

3

Dla C, można użyć JNA. Musisz zadeklarować sygnatury funkcji redundantnie w Javie, ale nie musisz pisać żadnego kodu kleju. JNA jest bardzo łatwy w użyciu.

Dla języka C lub C++ można użyć SWIG. SWIG jest nieco bardziej skomplikowany w użyciu, ale automatycznie generuje wrappery Java dla klas C++. Cieszę się z tego.

+0

Dzięki. Po przeczytaniu przez dokumenty na trochę. SWIG wygląda na to, że prawdopodobnie jest to rozwiązanie, którego potrzebuję. – idij

2

Wygląda SWIG współpracuje z Java: http://www.swig.org/Doc2.0/Java.html

Może to nie jest dokładnie to, czego szukasz, chociaż, ponieważ trzeba dodać dyrektyw łyk ...

+0

SWIG jest teraz w wersji 2. Twój link to 1.3. –

+0

Ups, poszedłam z tym, co mi dała Google. Naprawiony. –

3

JNAerator robi dokładnie to: czyta/C++/C ObjectiveC nagłówki i wyprowadza powiązań Java, które opierają się na BridJ (C/C++), JNA (tylko C) lub Rococoa (ObjectiveC, używa JNA).

Powiązane problemy