Appele d'une dll marche avec class java normal mais avec JApplet non

Résolu
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011 - 5 avril 2010 à 17:04
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011 - 8 avril 2010 à 11:48
Bonjour à tous
j'ai une souci avec Applet java appelant une dll lorsque j'ai tester dll avec une class java ça marcher mais avec Applet il m'affiche


Unable to load library



même si j'ai mis mon dll sur system32 même problème et lorsue j'ai tester d'appeler le fichier system msvcrt elle marche
J'utilise le jar jna et méthode LoadLibrary() ça marche avec class normal mais avec Applet non.
Merci pour vos aides

37 réponses

cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
7 avril 2010 à 10:49
aprés un long recherche sur internet
j'ai trouvé la bonne Solution Merci à ghezella
Tapez le texte de l'url ici.
3
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
7 avril 2010 à 10:50
il faut Signer le jna.jar aussi
3
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
8 avril 2010 à 11:48
Salut Dark,

enfin j'ai résolu mon probléme Mon Applet ne vient pas de voir ma dll TestDLL.dll car il faut ajouter les fichiers dll que TestDLL.dll l'utilise sur le même dossier que monApplet l'accede comme System32
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 avril 2010 à 17:11
Salut,

Est-ce que ton applet est signée ?

Cela pose des problèmes de sécurité d'accéder à une dll, et le jar de l'applet doit être signée pour pouvoir y accéder.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
5 avril 2010 à 17:55
Est-ce que ton applet est signée ?

Cela pose des problèmes de sécurité d'accéder à une dll, et le jar de l'applet doit être signée pour pouvoir y accéder

mais comment puisse signer mon applet et mon jar. j'ai chercher sur le net mais tout les reponse ne sont pas avec Eclipse
Le logiciel : Eclipse 3.5.2
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 avril 2010 à 18:00
Salut,

Il ne me semble pas qu'eclipse puisse signer une applet (bien qu'il doit bien exister un plugin pour cà) : il faut utiliser les outils du sdk : keytool pour générer la clé, et jarsigner pour signer le jar.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
5 avril 2010 à 18:21
j'ai chercher sur le net comment signer le jar et l'applet mais je trouve des commandes comme keytool et jarsigner dans cet lien Tapez le texte de l'url ici.
Mais lorsque je tappe sur l'invite de commande il me dit que keytool et jarsigner n'est pas une commande
aide svp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 avril 2010 à 18:27
Salut,

Il faut soit que tu inscrives le dossier bin de java dans ta variable d'environnement PATH, soit te positionner dans ce répertoire avec ta console.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
5 avril 2010 à 18:35
j'ai deux bin de jre et de jdk lequel je doit inscrit dans le path
Merci pour votre disponibilité
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 avril 2010 à 18:44
Salut,

C'est celui du jdk : le jre ne permet que d'exécuter un programme java. Le jdk permet quand à lui de développer des applications en java.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
5 avril 2010 à 18:52
j'ai réussie a signer mon jar qui est obtenu après exportation avec Eclipse
mais comment signer l'applet
pouvez vous m'aider
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 avril 2010 à 19:06
Salut,

C'est le jar qui est signé, pas l'applet : une clé a été rajouté au jar pour être sûr que le jar en question n'est pas modifié par un hacker.

Lorsqu'un utilisateur va télécharger ton jar, une autorisation lui sera demandée par le navigateur pour savoir s'il accepte ou non d'exécuter l'applet.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
6 avril 2010 à 12:00
Bonjour,
j'ai signé mon jar et fait quelque modification dans le code comme le écrire le chemin de la dll à ouvrire pour plus de précision mais l'Applet ne peut pas faire l'acces au dll et si je l'execute sur Eclipse elle charge le dll demander
voila la méthode que je l'appel dans l'Applet
static CInterface demo;
String idf;
public int initdll()
{
// Library is c for unix and msvcrt for windows
    String libName = "C:/WINDOWS/system32/msvcrt"; 
    
    
  
    // Loading dynamically the library
    
    try{
    demo = (CInterface) Native.loadLibrary(libName, CInterface.class);
    }catch(Exception e)
    {
    	e.printStackTrace();
    }
    if(demo!=null)
    {
    	return 1;
    }else
    {
    	return 0;
    }
}

l'execution de cet Applet sur Eclipse avant l'exportation marche sans aucune problème
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 avril 2010 à 12:02
Salut,

Les droits du Applet ne sont pas les mêmes entre une exécution sous eclipse et une fois compilée sous forme de jar et exécuté par le navigateur.

Est-ce que le navigateur te demande ton autorisation lorsque tu essaye d'exécuter l'applet avec lui ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
6 avril 2010 à 12:10
Salut Dark,
oui il me demande une autorisation et je l'accepte mais il reste incapable d'acceder au dll je vous précise l'erreur car j'ai fait das affichage dans JtextField il afficche le texte avant l'acces au dll mais si j'appele la méthode citer précedament il n'affiche pas le texte aprés je suis sure que l'erreur provient de
LoadLibrary()

voila partie pour l'appel dans l'applet
bouton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
//tf.setText("dll");
hello hl=new hello();
tf.setText(hl.toString());
    	int rs=hl.initdll();
    	if(rs==0)
    	{
    		tf.setText("erreur");
    	}else
    	{
    		tf.setText("charger");
    	}
}
});
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 avril 2010 à 12:17
Salut,

Et quelle est l'exception qui est levée ? (voir dans la console de java).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
6 avril 2010 à 13:00
Salut,

l'Applet marche et condole java n'a rien mais le chargementr ne marche pas car en principe le contenue de JtextField doit l'un de cas charger ou erreur mais l'affichage reste qui a été charger par ça
tf.setText(hl.toString());

mais ni
tf.setText("erreur");

ni
tf.setText("charger");
marche ç.a.d que l'execution s'arrete a l'appel de méthode
int rs=hl.initdll();
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
6 avril 2010 à 13:05
j'ai chercher sur le web et j'ai trouver qu'il faut que dll se retrouve dans le java.library.path
comment je peut le mettre dans ce répértoire
Merci Dark vous étes trés gentil
0
cs_avg Messages postés 97 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 20 août 2011
6 avril 2010 à 13:57
Salut Dark,
j'ai tester une auttre applet qui ecrit sur le disque sur c: elle marche sur le navigateur apés que le jar a été signer mais le chargement de la dll reste le même probléme
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 avril 2010 à 15:14
Salut,

Le java.library.path est le dossier "lib" de ton jre (ou jdk).

Par contre, cela veut dire qu'il faut copier le fichier dans ce dossier par ton applet AVANT d'y faire appel (c'est vrai que j'avais totalement zappé ce point !).

Il te faut donc packager la dll dans ton jar, et l'extraire et la copier dans le bon dossier. Et attention, ton applet ne sera uniquement exécutable QUE sous windows.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous