Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JARLOADER


Information sur la source

Catégorie :Divers Classé sous : jar, loader, classloader, reflect, method Niveau : Initié Date de création : 18/06/2007 Date de mise à jour : 15/09/2007 20:16:57 Vu / téléchargé: 4 273 / 354

Note :
Aucune note

Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


Description

bonsoir,
ce code tout chaud permet de recuperer les classes d'un fichier jar en les chargants dans la ram

il permet d'effectuer une recherche dans les classes contenu dans le jar pour la comparer a une autre

il permet aussi d'invoquer une methode d'une classe contenue dans le jar

j'ai founis un jar et une classe de test tire d'un de mes codes ...


j'attend vos commentaires
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

19 juin 2007 15:34:45 :
surcharge de getResource et getResourceAsStream , ajout d'une methdoe permettant de recuperer certain valeur du manifest (d'apres les commentaires de twinuts)
19 juin 2007 17:21:06 :
grosse mise a jour niveau appel de methode et ajout de nouvelles methode
19 juin 2007 17:23:03 :
erreur dans le zip
19 juin 2007 20:42:53 :
mise a jour encore : ajout d'une fonction qui parcours un repertoire pour en lister tous les jar
21 juin 2007 19:49:17 :
ajout de deux classe : ZIP.java => permet de zipper dezipper un dossier (ou des dossiers) et une classe Manifest pour remplacer celle du jdk que je trouve affreusement penible a utiliser ... , ajout d'une methode aussi pour alterer le manifest d'un jar
15 septembre 2007 20:16:57 :
mise a jour

Commentaires et avis

signaler à un administrateur
Commentaire de sheorogath le 18/06/2007 22:44:45 administrateur CS

je remercie twinuts qui m'a aide en me mettant sur une piste ^^

signaler à un administrateur
Commentaire de Twinuts le 19/06/2007 09:22:25 administrateur CS

Bah de rien :P
Il ne te reste plus qu'à ajouter le support du fichier manifest et des ressources :P

Pour le manifest exemple :
[...]
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.jar.Attributes;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
[...]
private Manifest manifest = null;
[...]
JarInputStream jis = new JarInputStream(new BufferedInputStream(new FileInputStream(jarFileName)), true);
manifest = jis.getManifest();
[...]
public Manifest getManifest(){
  return manifest;
}
public String getManifestValue(String manifestAttribute){
  if(manifest == null)
    return null;
  Attributes atts = manifest.getMainAttributes();
  if(atts == null)
    return null;
  return atts.getValue(manifestAttribute);
}
[...]

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 11:06:28 administrateur CS

ouaip ca viendras certainement ^^

signaler à un administrateur
Commentaire de DARKSIDIOUS le 19/06/2007 13:04:56 administrateur CS

Cela permet-il de faire de l'introspection d'un jar non lié à son application ? (parcourt d'un jar quelconque, récupèration des classes dedans, chargement en mémoire, puis utilisation de celle-ci ni vu ni connu) ?

signaler à un administrateur
Commentaire de Twinuts le 19/06/2007 13:10:45 administrateur CS

Salut,

DARKSIDIOUS c'est le principe de base pour chrager des plugins

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 13:37:24 administrateur CS

c'est exactement ca Darksidious cf => le jar d'exemple

la je suis en train de galerer pour l'ameliorer

signaler à un administrateur
Commentaire de DARKSIDIOUS le 19/06/2007 14:04:13 administrateur CS

cool ! Je sens que ca va me servir alors, merci !!!

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 14:05:29 administrateur CS

de rien
la je fais deja la v2 avec gestion de cache et tout pour les ressources et bon malgre ce que certain dise (n'est ce pas twins :p) c'est pas facil facil

signaler à un administrateur
Commentaire de DARKSIDIOUS le 19/06/2007 14:10:35 administrateur CS

lol tu viens à peine de poster cette version que tu bosse déjà sur une évolution ?

Arrête tout sinon tu va finir par être accro de la prog comme moi :p

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 14:13:55 administrateur CS

lol c'est trop tard :p

signaler à un administrateur
Commentaire de Twinuts le 19/06/2007 14:14:17 administrateur CS

DARKSIDIOUS atta qu'il ajoute le support Manifest comme ça tu pourras te servir de celui-ci pour trouver la main class de ton plugin sans forcer le nom .... perso j'utilise cette technique pour leurs chargements exemple :

String mainClass = jarloader.getManifestValue("Main-Class");
Class<?> c = jl.findJarClass(mainClass);
.....

Pour ce qui est du Cache faut juste que tu le pense bien mais je pense que si tu commences avec la technique vu sur msn tu devrais en faire un pure truc, mais attention à ne pas trop lier le Cache avec le chargement des plugins sinon tu ne pourras pas le porter dans d'autres projets....

Suis deg je ne peux meme pas poster mon Cache... je l'ai fais au boulot....ouiiiinnnnn ^^

signaler à un administrateur
Commentaire de DARKSIDIOUS le 19/06/2007 14:30:02 administrateur CS

clause de confidentialité ?

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 14:31:51 administrateur CS

t'inquiete je vois maintenant ce qeu tu veux dire avec le Cache :p

sinon quant aux liens t'inquiete pas un peu d'abstract ou d'interface :p

signaler à un administrateur
Commentaire de Twinuts le 19/06/2007 14:37:27 administrateur CS

Oui j'ai signé le petit papier alors j'evite de diffuser mes codes ce qui ne me facilite pas vraiment la tâche et qui est je trouve fortement domage... j'ai plein de codes qui pourrait répondre à bon nombre des question du forum.... et à tous concernant la VoIP

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 15:40:18 administrateur CS

mise a jour d'apres les commentaires

signaler à un administrateur
Commentaire de sheorogath le 19/06/2007 17:36:00 administrateur CS

nouvelle mise a jour mais j'ai oublié de programmer une methode

signaler à un administrateur
Commentaire de petifa le 07/07/2007 22:35:02

merci pour ce code il va pouvoir me servir jpense

petifa

signaler à un administrateur
Commentaire de nadia_h le 30/04/2008 09:52:19

Merci également pour ce code. Et désolée pour ma question de débutante.
Mais j'obtiens le message d'erreur suivant lorsque je souhaite que les classes d'un jar non lié à l'application implémente une interface de l'application :
java.lang.NoClassDefFoundError
Quelqu'un a t'il déjà résolu ce problème et comment ?
Merci.

signaler à un administrateur
Commentaire de sheorogath le 30/04/2008 10:27:17 administrateur CS

il n'y a aucune interface dans mon application ...
j'ai pas bien compris le probleme je pense

signaler à un administrateur
Commentaire de nadia_h le 30/04/2008 10:32:46

Merci de répondre aussi vite.
Oui il n'y a pas d'interface, je sais.
Le jarloader en l'état s'execute parfaitement. Ma difficulté vient du fait que les classes contenues dans mon jar doivent implémenter une interface contenue dans le classpath de mon application principale.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Classe loader de type COB (jar) [ par abdelhaouz ] bonjour tous, jai besoin d'un fichier jar qui contient un classe loader qui charge des fichiers 3D de type COB (Caligari trueSpace), jai chercher sur JAR et classLoader [ par titeuf921 ] Bonjour j'aimerai savoir comment je pourrai jchrger dans la JVM tout les .jar contenu dans un repertoirej'ai essayé avcec le classLoader mais c soulan erreur incompréhensible [ par EvilGost ] Mon probleme est le suivant:J'ai un CD avec des exemples de prog en Java. Le problème, dans la plupart des cas, c'est que j'obtiens une erreur dès qu' fichier jar et parametres en ligne de commande [ par cassenoisette ] Bonjours à tous.voila, j'ai un petit probleme, j'ai un prog en java qui genere beaucoup de fichier ".class", alors pour que cela soit moins le bordel, JAR [ par demonc ] Bonjour, pour installer un programme java, je dois passer par un makefile. Ce dernier fait appelle a l'utilitaire jar avec l'option -u. Cependant, lor fichier jar [ par ichraf ] bonjour,je programme avec java à partir d'une petite période et j'ai besoin maitenant de faire des fichier jar, comment je peux les faire?je travaille Pb connection driver jdbc fichier jar ! [ par EnAvant ] Salut, Voila, ça fait quelques jours que je reste planté sur la creation de mon jar executable ! Avant tout, j'ai réussi à creer un exe avec JT JAR [ par demonc ] Bonjour, je travaille en ce moment sur une application java qui utilise la manière suivante pour compiler :- make = Je dois dans un faire un make au n JAR [ par demonc ] Bonjour ,je dois modifier un prog java utilisant des makeFile. Ce dernier ce base sur un jar pour faire les releases. POur éviter de reconstruire le g modifier un jar [ par demonc ] Bonjour, je m'excuse tout d'abord de ne pas pouvoir répondre directement a ceux qui m'ont écrit, mais a chaque que je veux rajouter une réponse a un m


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,58 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.