J'ai suivi ce tutoriel , et à l'étape 5, GCC obtient le résultat suivant:
HelloWorld.c:1:17: error: jni.h: No such file or directory
In file included from HelloWorld.c:3:
HelloWorld.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
HelloWorld.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
Je sais que les répertoires d’inclusion varient d’un système à l’autre; j’ai donc essayé d’adapter la commande en conséquence, mais je ne semble pas pouvoir trouver le bon répertoire sur mon système. J'utilise Ubuntu 10.04LTS.
Ouvrez un terminal et tapez:
locate jni.h
Cela devrait vous dire où se trouve chaque fichier appelé jni.h sur votre système. Je suis sur Ubuntu 11.04, et il se trouve à:
/usr/lib/jvm/Java-6-openjdk/include/jni.h
/usr/lib/jvm/Java-6-Sun-1.6.0.26/include/jni.h
Vous devrez peut-être aussi l'obtenir auprès du dépôt:
Sudo apt-get install openjdk-6-jdk
devrait faire l'affaire si vous ne l'avez pas installé.
jni.h
habite avec JDK. Pour moi c'est: jdk1.6.0_25/include/
.
Et par défaut, je ne pense pas que Ubuntu aurait JDK avec des bibliothèques de développement, alors téléchargez la dernière version du JDK depuis Oracle et installez-le quelque part.
Ou vous pouvez installer openjdk
comme @Leif le suggère si cela fonctionne avec 10.04 LTS. Personnellement, je préfère celui de Sun/Oracle.
Dans Ubuntu 14.04, exécutez:
Sudo apt-get install openjdk-7-jdk openjdk-7-jre-lib
Maintenant, vous avez un en-tête dans/usr/lib/jvm/Java-7-openjdk-AMD64/include
Pour OpenJDK 6:
Sudo apt-get install openjdk-6-jdk openjdk-6-jre-lib