Appele d'une dll marche avec class java normal mais avec JApplet non [Résolu]

Signaler
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011
-
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011
-
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

Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

aprés un long recherche sur internet
j'ai trouvé la bonne Solution Merci à ghezella
Tapez le texte de l'url ici.
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

il faut Signer le jna.jar aussi
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

j'ai deux bin de jre et de jdk lequel je doit inscrit dans le path
Merci pour votre disponibilité
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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");
    	}
}
});
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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();
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
97
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
20 août 2011

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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
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