gcj est un "simple" remplacement à javac. (j'exagère mais bon).
comme déjà dit, il n'a pas pour but de générer des librairies utilisable pour JNI/JNA, il a pour but de précompiler les .class dans la plateforme courante.
Donc (car ce n'est pas clair dans votre énoncé).
Soit vous avez tenté de compiler 1 ou plusieurs classes java en .so et tentez maintenant de l'utiliser dans votre JVM "classique"-> ca ne peut pas marcher
Soit vous vous avez une vraie classe native à charger via System.loadLibrary() et vous avez des erreurs. Dans ce cas, il serait judicieux de poster le code de la classe native, ansi que le code natif que vous avez balancé dans le compilateur JNI/JNA, que ceux qui s'y connaissent puissent regarder ce qui se passe.
Pour rappel, le but de gcj est de faire des .so et des ELF/ELF64. Un fois que vous partez avec gcj, votre application finale devra estre un ELF compilé avec gcj, pas un jar à lancer avec java -jar

Partager