Użycie interfejsu JNI
Poza formą interfejsu JNI, należy rozważyć, w jaki sposób JNI jest używany przez rodzime biblioteki w systemie 64-bitowym.
Istnieje kilka kwestii, które należy wziąć pod uwagę:
- W niektórych systemach 64-bitowych niektóre obiekty rodzime, które są przekazywane między JNI, są 64-bitowe, natomiast 32 są nieco w równoważnych systemach 32-bitowych . Przykładami tego typu obiektów są uchwyty gniazd i uchwyty plików.
- Przekazywanie obiektów 64-bitowych przez interfejs JNI nie jest problemem. Jednak w wielu przypadkach obiekty te są przechowywane w polach obiektów Java™ . Implikacja polega na tym, że typ tych pól obiektu zmienia się w 64-bitowym systemie w porównaniu z istniejącymi systemami 32-bitowymi . Aby to osiągnąć, należy zmienić kod Java.
- Jeśli wielkość pola obiektu Java jest inna na platformie 64-bitowej z platformy 32-bitowej , każdy kod rodzimy pracujący z tym polem obiektu musi zostać zmieniony, aby odzwierciedlić różnicę w wielkości, gdy kod jest importowany z 32 do 64-bitowego. Najlepiej można sobie z tym poradzić, podając pełny opis każdego z typów obiektów Java, które są w ten sposób dotknięte. Jeśli w kodzie aplikacji przechowywane są "dane rodzime" w obrębie obiektów Java, należy zmodyfikować kod Java, aby zapewnić, że w obrębie obiektów Java jest wystarczająca ilość miejsca do przechowywania wszystkich danych rodzimych.