J'ai encapsulé l'utilisation d'une dll maison dans une classe qui
contient des méthodes natives.
Après avoir mis ma dll (pour mes méthodes natives) et la dll XX celle
pour qui j'ai du faire du natif) dans le répertoire courant (".") voici
l'erreur donnée par la JVM :
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll
at package.NomclasseXX.Methode(Native Method)
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
Johann Burkard
Cyrille Proust wrote:
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx") - Si la dll es dans le répertoire courant, essaie Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1]. - Il te faut appeller Java avec -Djava.library.path=. - Les noms des exports sont differents. Chez moi, l'export s'appelle , par exemple.
This signature served by .siGenerator. 1.0 (<http://johannburkard.de>)
Cyrille Proust wrote:
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll
at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx")
- Si la dll es dans le répertoire courant, essaie
Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1].
- Il te faut appeller Java avec -Djava.library.path=.
- Les noms des exports sont differents. Chez moi, l'export s'appelle
_Java_classname_methodname@32, par exemple.
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx") - Si la dll es dans le répertoire courant, essaie Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1]. - Il te faut appeller Java avec -Djava.library.path=. - Les noms des exports sont differents. Chez moi, l'export s'appelle , par exemple.
This signature served by .siGenerator. 1.0 (<http://johannburkard.de>)
Cyrille Proust
Merci pour le coup de main :-)
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll. J'ai une dll, XX.dll, écrite en C++ et j'ai créé une class Nat avec des méthodes native JNI liées à Nat.dll, qui utilise cette librarie et c'est lorsque que Nat.dll essaye de charger l'autre dll qu j'ai un problème de lien... // Class Nat {
public native String test(params...); static { System.loadLibrary("Nat"); //Runtime.getRuntime().load("Nat.dll"); } } Nat.dll définit la méthode test mais test utilise une dll nommée XX.dll et c'est cette librairie qui créé java.lang.UnsatisfiedLinkError
Si je retire XX.dll, j'ai une erreur du type "Ne peut pas trouver la librairie XX.dll ; Si je la laisse, j'ai le message d'erreur voir ci dessous. //
Merci,
Cyrille
Cyrille Proust wrote:
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx") - Si la dll es dans le répertoire courant, essaie Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1]. - Il te faut appeller Java avec -Djava.library.path=. - Les noms des exports sont differents. Chez moi, l'export s'appelle , par exemple.
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur
survient lorsque cette librarie native Nat.dll décide d'utiliser la
librairie XX.dll.
J'ai une dll, XX.dll, écrite en C++ et j'ai créé une class Nat avec des
méthodes native JNI liées à Nat.dll, qui utilise cette librarie et c'est
lorsque que Nat.dll essaye de charger l'autre dll qu j'ai un problème de
lien...
//
Class Nat {
public native String test(params...);
static
{
System.loadLibrary("Nat");
//Runtime.getRuntime().load("Nat.dll");
}
}
Nat.dll définit la méthode test mais test utilise une dll nommée XX.dll
et c'est cette librairie qui créé java.lang.UnsatisfiedLinkError
Si je retire XX.dll, j'ai une erreur du type "Ne peut pas trouver la
librairie XX.dll ;
Si je la laisse, j'ai le message d'erreur voir ci dessous.
//
Merci,
Cyrille
Cyrille Proust wrote:
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll
at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx")
- Si la dll es dans le répertoire courant, essaie
Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1].
- Il te faut appeller Java avec -Djava.library.path=.
- Les noms des exports sont differents. Chez moi, l'export s'appelle
_Java_classname_methodname@32, par exemple.
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll. J'ai une dll, XX.dll, écrite en C++ et j'ai créé une class Nat avec des méthodes native JNI liées à Nat.dll, qui utilise cette librarie et c'est lorsque que Nat.dll essaye de charger l'autre dll qu j'ai un problème de lien... // Class Nat {
public native String test(params...); static { System.loadLibrary("Nat"); //Runtime.getRuntime().load("Nat.dll"); } } Nat.dll définit la méthode test mais test utilise une dll nommée XX.dll et c'est cette librairie qui créé java.lang.UnsatisfiedLinkError
Si je retire XX.dll, j'ai une erreur du type "Ne peut pas trouver la librairie XX.dll ; Si je la laisse, j'ai le message d'erreur voir ci dessous. //
Merci,
Cyrille
Cyrille Proust wrote:
java.lang.UnsatisfiedLinkError: Nome de la dll XX.dll at package.NomclasseXX.Methode(Native Method)
D'ou peut venir le problème ?
- Tu as oublié d'écrire Runtime.getRuntime().loadLibrary("xx") - Si la dll es dans le répertoire courant, essaie Runtime.getRuntime().load("xx.dll") ou bien NativeLoader [1]. - Il te faut appeller Java avec -Djava.library.path=. - Les noms des exports sont differents. Chez moi, l'export s'appelle , par exemple.
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Johann -- Jeep, thx. (*Tönnes in <aic1rq$h78$)
Cyrille Proust wrote:
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur
survient lorsque cette librarie native Nat.dll décide d'utiliser la
librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll?
Avec LoadLibrary?
Johann
--
Jeep, thx.
(*Tönnes in <aic1rq$h78$1@newsreader2.netcologne.de>)
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Johann -- Jeep, thx. (*Tönnes in <aic1rq$h78$)
Cyrille Proust
Bonjour,
Cyrille Proust wrote:
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll). Manifestement non.
Johann
Merci,
Cyrille
Bonjour,
Cyrille Proust wrote:
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur
survient lorsque cette librarie native Nat.dll décide d'utiliser la
librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll?
Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les
fonction de XX.dll directement ; c'est pourquoi je pensais que mettre
les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Manifestement non.
Le probleme n'est pas de charger la librairie native Nat.dll ; l'erreur survient lorsque cette librarie native Nat.dll décide d'utiliser la librairie XX.dll.
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll). Manifestement non.
Johann
Merci,
Cyrille
Johann Burkard
Cyrille Proust wrote:
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur <http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?
Johann -- 19:41 .gra0.: findest du es unmoralisch, meine miesen performances künstlich aufzubessern? 19:41 Michael: nein, ich finde es unumgänglich
Cyrille Proust wrote:
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll?
Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les
fonction de XX.dll directement ; c'est pourquoi je pensais que mettre
les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur
<http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?
Johann
--
19:41 .gra0.: findest du es unmoralisch, meine miesen performances
künstlich aufzubessern?
19:41 Michael: nein, ich finde es unumgänglich
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur <http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?
Johann -- 19:41 .gra0.: findest du es unmoralisch, meine miesen performances künstlich aufzubessern? 19:41 Michael: nein, ich finde es unumgänglich
Cyrille Proust
Désolé,
En fait, c'était un problème avec mon projet VC++6.0 qui ne créait pas une "bonne" dll...
Merci pour tout,
Cyrille Proust
Cyrille Proust wrote:
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur <http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?
Johann
Désolé,
En fait, c'était un problème avec mon projet VC++6.0 qui ne créait pas
une "bonne" dll...
Merci pour tout,
Cyrille Proust
Cyrille Proust wrote:
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll?
Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les
fonction de XX.dll directement ; c'est pourquoi je pensais que mettre
les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur
<http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?
En fait, c'était un problème avec mon projet VC++6.0 qui ne créait pas une "bonne" dll...
Merci pour tout,
Cyrille Proust
Cyrille Proust wrote:
Et comment tu l'as fait dans Nat.dll d'appeller les exports de XX.dll? Avec LoadLibrary?
Non je n'utilise pas LoadLibrary, je lie avec XX.lib et j'appelle les fonction de XX.dll directement ; c'est pourquoi je pensais que mettre les 2 dll au même endroit suffisait (Nat.dll et XX.dll).
Hm. Peut-être tu trouves une meilleure réponse sur <http://msdn.microsoft.com> ou dans les newsgroups Microsoft.
A propos: As-tu essayé d'appeller Runtime#loadLibrary avec les deux dll?