Bonjour,

Pour un projet que je dois réaliser, je m'interesse à l'utilisation de JNI.
Mon probleme se situe lors de la génération du fichier .h avec la commande javah.

En effet, je compile mon fichier MaClasse.java correctement, j'obtient donc le fichier MaClass.class, puis à partir de là je souhaite générer le fichier maClasse.h grâce à la commande:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
javah -o maClasse.h MaClasse
J'obtiens l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Exception in thread "main" java.io.IOException: can't find class file MaClass.class in java.net.URLClassLoader{urls=[file:/usr/lib/jvm/java-1.5.0-gcj-4.3-1.5.0.0/jre/lib/rt.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:/usr/share/java/libgcj-4.3.2.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
   at gnu.classpath.tools.javah.Main.getClass(libgcj-tools.so.90)
   at gnu.classpath.tools.javah.Main.run(libgcj-tools.so.90)
   at gnu.classpath.tools.javah.Main.main(libgcj-tools.so.90)
Alors que quand je compile en ajoutant directement le Classpath ca marche :
javah -cp .:/usr/share/java/libgcj-4.3.2.jar -o maClass.h MaClass

J'ai bien essayé de modifier mon CLASSPATH avec export CLASSPATH=... mais ça ne change rien.

Ma question est donc:
Comment utiliser javah sans avoir à toujours specifier le classpath?

Merci à tous!