je compile le C avec
gcc -I ${JAVA_HOME}/include/ -I ${JAVA_HOME}/include/linux/ -o
hello.so -shared -fpic -lc hello.c
nickel,
je place export LD_LIBRARY_PATH=<repertoire ou se trouve mon hello.so>
et a chaque : java hello
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in
java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at hello.<clinit>(hello.java:3)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas Delsaux
Le 17.01 2004, stef s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Salut à tous, J'appelle a l'aide au pro du JNI :
Sous Linux rh 7.3 Je teste un petit prog pour interfacer du natif. En gros ca donne :
class hello { static { System.loadLibrary("hello"); }
public native void afficherHello();
public static void main(String[] args) { System.out.println("Hello, world!"); } }
ok, $ javac hello.java $ javah -jni hello
ou est mon erreur ???
Est-ce que ta librairie est dans ton CLASSPATH ? ou dans ton LD_LIBRARRY_PATH (même si je crois qu'elle doit se trouver dans le premier) ? Et je crois d'ailleurs qu'il faut donner le nom avec l'extension. Tout au moins, quand j'en ai fait, il y a un bon bout de temps, c'est comme ça qu'il fallait faire, si je me souviens bien.
merci d'avance à tous...
-- Nicolas Delsaux "Une nymphomane est une femme aussi obsédée par le sexe que l'homme moyen." Mignon McLaughlin
Le 17.01 2004, stef s'est levé et s'est dit : "tiens, si j'écrivais aux
mecs de fr.comp.lang.java ?"
Salut à tous,
J'appelle a l'aide au pro du JNI :
Sous Linux rh 7.3
Je teste un petit prog pour interfacer du natif.
En gros ca donne :
class hello
{
static { System.loadLibrary("hello"); }
public native void afficherHello();
public static void main(String[] args)
{
System.out.println("Hello, world!");
}
}
ok,
$ javac hello.java
$ javah -jni hello
ou est mon erreur ???
Est-ce que ta librairie est dans ton CLASSPATH ? ou dans ton
LD_LIBRARRY_PATH (même si je crois qu'elle doit se trouver dans le
premier) ?
Et je crois d'ailleurs qu'il faut donner le nom avec l'extension. Tout au
moins, quand j'en ai fait, il y a un bon bout de temps, c'est comme ça
qu'il fallait faire, si je me souviens bien.
merci d'avance à tous...
--
Nicolas Delsaux
"Une nymphomane est une femme aussi obsédée par le sexe que l'homme
moyen."
Mignon McLaughlin
Le 17.01 2004, stef s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Salut à tous, J'appelle a l'aide au pro du JNI :
Sous Linux rh 7.3 Je teste un petit prog pour interfacer du natif. En gros ca donne :
class hello { static { System.loadLibrary("hello"); }
public native void afficherHello();
public static void main(String[] args) { System.out.println("Hello, world!"); } }
ok, $ javac hello.java $ javah -jni hello
ou est mon erreur ???
Est-ce que ta librairie est dans ton CLASSPATH ? ou dans ton LD_LIBRARRY_PATH (même si je crois qu'elle doit se trouver dans le premier) ? Et je crois d'ailleurs qu'il faut donner le nom avec l'extension. Tout au moins, quand j'en ai fait, il y a un bon bout de temps, c'est comme ça qu'il fallait faire, si je me souviens bien.
merci d'avance à tous...
-- Nicolas Delsaux "Une nymphomane est une femme aussi obsédée par le sexe que l'homme moyen." Mignon McLaughlin
stef
Merci quand meme Nicolas, mais j'ai juste oublie le lib devant l'option de compilation...
Désolé le ferait plus !
Merci quand meme Nicolas, mais j'ai juste oublie le lib devant l'option de
compilation...