-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathcall-c-from-java.yaml
More file actions
17 lines (17 loc) · 1.61 KB
/
call-c-from-java.yaml
File metadata and controls
17 lines (17 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
title: Appeler du code C depuis Java
oldApproach: JNI (Java Native Interface)
modernApproach: FFM (Foreign Function & Memory API)
summary: FFM permet à Java d'appeler directement des bibliothèques C, sans code répétitif JNI ni connaissance de Java côté C.
explanation: "Java propose deux approches pour appeler du code natif C/C++ : le JNI traditionnel et la moderne API FFM. Avec JNI, vous déclarez une méthode comme native, exécutez javac -h pour générer un fichier d'en-tête C, puis implémentez la fonction en utilisant la lourde API JNI C (JNIEnv, jstring, etc.). FFM, introduite comme API standard dans Java 22, élimine tout cela : le code C reste du C pur — aucune convention JNI n'est requise. Cela facilite considérablement l'appel de bibliothèques C/C++ existantes sans modification. Le côté Java utilise Arena pour la gestion sécurisée de la mémoire hors tas et MethodHandle pour le downcall, garantissant flexibilité et sécurité."
whyModernWins:
- icon: "👁"
title: Le code C reste du C pur
desc: "La fonction C n'a besoin d'aucune annotation JNI ni de code JNIEnv répétitif — toute bibliothèque C existante peut être appelée telle quelle."
- icon: "⚡"
title: Plus flexible
desc: "Appelez directement la plupart des bibliothèques C/C++ existantes sans écrire de code adaptateur ni générer de fichiers d'en-tête."
- icon: "🛠️"
title: Workflow simplifié
desc: "Inutile de s'arrêter, d'exécuter javac -h et d'implémenter l'interface définie dans le fichier .h généré."
support:
description: Standardisé dans JDK 22 (mars 2024) ; auparavant en incubation depuis JDK 14