IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Ajouter un jar dynamiquement


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Points : 32
    Points
    32
    Par défaut Ajouter un jar dynamiquement
    Bonjour,

    Je vous expose mon problème, je suis sur un système en client léger. et suite à des nouveaux développement on peut être amené à ajouter de nouvelles API.

    Mon problème c'est que je ne veux pas redémarrer mon serveur pour ajouter les nouveaux jar, car ça ferai déconnecter les utilisateurs connecté dessus. J'ai plusieurs clients dans des versions différentes sur le même serveur.


    En gros je veux pouvoir ajouter des jar dans mon classpath par le code ou alors une configuration spéciale du manifest.mf

    Si vous avez des idées ou si vous avez déjà fait cette manip

    Merci d'avance,

    Khrono.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Points : 32
    Points
    32
    Par défaut
    J'ai trouvé ce bout de code ... mais ça ne fonctionne pas quand même, l'URL est correcte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    /**
             ** Add an URL (jar file) to the Classpath.
             ** 
             * @param u URL of the file to add to the classpath
             ** @throws Exception
             **/
    	public static void addPath(URL u) throws Exception {
    		URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
    		Class urlClass = URLClassLoader.class;
    		Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
    		method.setAccessible(true);
    		method.invoke(urlClassLoader, new Object[]{u});
    	}

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Pour ajouter un "jar" en dynamique, il faut passer par le ClassLoader. La documentation est abondante sur le sujet.

    Une grosse mise en garde cependant : la JVM n'est pas capable de gérer des versions différentes d'une même classe. Pour une nouvelle instance, c'est toujours la dernière version qui sera utilisée. Les différentes instances des différentes versions vont entrer en conflit. Une instance d'une ancienne version pourrait utiliser du code de la dernière version.
    Tu devrais peut-être te poser des questions supplémentaires du genre : est-il envisageable d'ajouter un serveur secours ? Est-il logique que des versions différentes d'instances co-existent ? Faire une bascule vers le secours sans perte de connexion est-il faisable sur ce projet ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. [VB.NET] Ajout de controles dynamiquement
    Par A77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2005, 09h00
  2. [NetBeans] ajouter des .jar
    Par salber dans le forum NetBeans
    Réponses: 2
    Dernier message: 28/05/2004, 14h21
  3. [C#] ajouter une image dynamiquement
    Par h_imane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h27
  4. ajouter un champ dynamiquement à une instance de table
    Par maniack dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 23h58
  5. Ajouter un jar ou un package à un autre package
    Par zoulai dans le forum JBuilder
    Réponses: 6
    Dernier message: 30/07/2003, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo