Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HELP] Java Dll windows et JNI

3 réponses
Avatar
Franck Legrand
Bonjour,

J'ai un moteur de fonctions dans une DLL windows
ainsi qu'une dll 'java' qui fait trés bien la 'glue'
entre une application java et la dll windows.

J'aimerais maintenant en faire une applet et
pemettre aux Internautes d'exécuté l'applet
et les calcul de façon transparente.

Je sais :
- que cela ne marchera que sous windows
- faire un jar signé pour que le loadlibrary ne me
jette pas pour des raisons de sécurité.

Je ne sais pas:
- que fais le jar de mes dll car y en a deux
- pourquoi j'ai le message
Error: java.lang.UnsatisfiedLinkError: no ma_dll_glue in java.library.path

Comment on lui dit que les librairies sont dans le jar ?
ou
Comment on lui dit de mettre les librairies dans le java.library.path ?

Si vous avez la réponse ou un exemple qui fonctionne
envoyé moi un mail car c'est urgent.

Merci
FL
franck.legrand@c3ed.uvsq.fr

3 réponses

Avatar
JScoobyCed
"Franck Legrand"
Bonjour,
Bonjour,


Comment on lui dit que les librairies sont dans le jar ?
ou
Comment on lui dit de mettre les librairies dans le java.library.path ?

J'ai utilise une dll dans un applet pour faire marcher le port serie (

JAVACOMM API pour etre precis). Pour m'en sortir, j'ai bien signe le jar.
Par contre, la ou est le probleme est qu'il faut que la dll se retrouve dans
le java.library.path . Or la je n'ai trouve qu'un moyen. Faire un pre-applet
qui sert d'installeur. Il faut le signer aussi. Celui ci va telecharger les
dll necessaires depuis le serveur vers le repertoire %JRE_PATH%/bin du
client (dans mon cas il y avait aussi un .jar et un .properties). Ensuite on
change de page web et on se trouve la ou est l'applet desire.
On ne peut charger une dll depuis le .jar.
Tu as donc besoin d'un autre petit applet qui:
- lit la valeur de java.home
- cree un inputstream sur la dll (URLConnection sur
http://www.monserveur.com/foo/resources/dll/maDll.dll )
- cree un fileoutputstream sur le filesystem client (
System.getProperty("java.home")+"binmaDll.dll") ) .
- copie de la source vers la destination.
- utilise Applet.getAppletContext().showDocument(URLversApplet2) qui va sur
la page ou est l'applet sur lequel tu travail.
Les deux applets doivent etre effectivement signes.

Bon courage.

JScoobyCed
-------------

Avatar
Franck Legrand
Merci merci,

tu es très précis et ta solution a l'ai parfaite pour mon problème.


JScoobyCed a écrit:

J'ai utilise une dll dans un applet pour faire marcher le port serie (
...


Avatar
Franck Legrand
Plus de problème en faisant une copie
dans java.home puis dans bin des dlls
l'ensemble fonctionne.

Merci à ceux qui ont essayé de me répondre
et surtout à JScoobyCed

A+