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 :

Manipulation de 2 jar pour le même projet


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut Manipulation de 2 jar pour le même projet
    Bonjour,
    Je dois rendre un projet qui doit lancer sous la forme:

    java -classpath wazup.jar:config.jar Wazup

    J'ai développé mon projet sous netbeans avec la structure suivante:
    MaClasse1.java
    MaClasse2.java
    MaClasse3.java
    ...
    Config.java

    En gros il faut séparer dans 2 jar les fichiers MaClassex et le fichier Config.
    Juste pour info: config ne contient que des infos sur la configartion (numéro de port, user...). Il faut absolument le séparer pour que le prof puisse facilement corriger le projet en mettant son config.jar a la place du notre.

    La classe Config est évidemment utilisé dans d'autres classes.

    Pour le développement, j'ai mis le fichier config dans le même projet et même package que les autres classes.

    -J'ai créer le jar de mon projet (Mes classes + config.java) et j'obtiens les wazup.jar
    -J'ai créer le jar du config.class et j'obtiens le config.jar.

    java -jar "wazup.jar"
    -> Le projet se lance, mais évidemment il faut séparer le fichier config

    Si je supprime le fichier config de l'archive jar (a la barbare...) et que je rajoute le config comme dans l'énoncé
    java -jar wazup.jar:config.jar

    J'ai une erreur:
    Exception in thread "main" java.lang.NoClassDefFoundError: c:\wazup/jar:c\config.jar

    Si je supprimer le config.java de mon projet, évidemment netbeans me rale dessus a la compilation vu qu'il ne le retrouve pas.

    J'ai essayé encore plein d'autre truc, mais pas moyen de le faire fonctionner avec la ligne de commande ci dessus.

    Comment faire pour diviser un projet en deux jar (avec des classes du jar1 qui ont besoin de classe du jar2)? Pourquoi la ligne de commande qu'on doit utiliser pour ouvrir ne contient elle pas de "-jar" et que signifie le Wazup (=nom du projet) a la fin?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Il vaut mieux te renseigner sur le forum netbeans, je pense, pour savoir comment générer deux jars avec un seul projet.

    Il faut reconnaître que ta contrainte est un peu... heu... enfin, surtout s'il n'y a que deux fichiers !

    Je te conseille de faire les choses normalement avec Netbeans, de faire ton pojet et de le faire fonctionner, avec un seul jar, puis de résoudre les demandes exotiques, si je puis me permettre, avec la ligne de commande (par la commande jar), ou avec Ant.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Il vaut mieux te renseigner sur le forum netbeans, je pense, pour savoir comment générer deux jars avec un seul projet.
    Je pensais plus simple, pour cette opération précise, de générer ça en ligne de commande.

    Citation Envoyé par gifffftane Voir le message
    Il faut reconnaître que ta contrainte est un peu... heu... enfin, surtout s'il n'y a que deux fichiers !
    Est un peu quoi? Comme je l'ai précisé plus haut, c'est pour que le prof puisse facilement testé le projet (si il y a 50 étudiants...) en remplaçant notre config par la sienne (numéro de port, uris, users...). C'est pas une contrainte ridicule mais c'est gonflant a faire

    Citation Envoyé par gifffftane Voir le message
    Je te conseille de faire les choses normalement avec Netbeans, de faire ton pojet et de le faire fonctionner, avec un seul jar, puis de résoudre les demandes exotiques, si je puis me permettre, avec la ligne de commande (par la commande jar), ou avec Ant.
    C'est ce que j'ai fait. Comme je l'ai précisé plus haut, j'ai un seul jar et tout va bien. Le projet va bien. Seulement faut que je sépare le config mais je n'arrivais pas a voir comment organisé les jar pour que ça puisse tourner de cette manière en ligne de commande (je pense que ce serait plus efficace d'y aller au scalpel (ligne de commande jar) qu'a la tronçonneuse (netbeans).

    Enfin je vais regarder le lien, merci pour ton aide

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Ah ! Pardon, j'avais mal compris.

    Je pense que ton problème vient du fait que tu utilises l'option -jar et que tu spécifies le classpath sur la ligne de commande. Avec l'option -jar, le classpath se spécifie dans le manifest du jar.

    Vois des pistes à la description de l'option -jar de la commande java.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    sinon pour avoir deux jars séparés, fait deux projet séparés tu peux en faire un (ton projet principal) dépendre de l'autre (ta config)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    sinon pour avoir deux jars séparés, fait deux projet séparés tu peux en faire un (ton projet principal) dépendre de l'autre (ta config)
    J'y pensais mais les méthodes de la classe config.java du prof sont private.
    La seul manière que j'ai trouvé de les utiliser, c'était de les mettres dans le même package
    Au passage, il me semblait que des méthodes privates d'une classe ne pouvaient pas être utilisé par des objets instanciants une classes différentes

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Les méthodes privées d'une classe ne sont accessible que par cette même classe, c'est tout. Ou alors éventuellement avec l'api de reflection. Elle ne sont pas visible par les objets hérités, ni par les classes du même package. Si c'est accessible de l'extérieur c'est qu'elle ne sont pas private (soit protected, soit "default")

    Note: tu peux très bien créer dans deux project différent des classes appartenant au même package. On fait parfois çà quand on a besoin d'accès à des méthodes protected d'une classe mal conçue ^^

Discussions similaires

  1. Plusieurs répertoires de déploiement pour un même projet
    Par ninfomane dans le forum Visual Studio
    Réponses: 3
    Dernier message: 24/11/2010, 17h03
  2. avoir deux chemins \graphicspath pour un même projet latex
    Par cecilebzh dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 01/02/2010, 17h59
  3. Deux jars pour une même module EJB
    Par krum dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 09/11/2009, 16h15
  4. [1.x] Deux bases de données pour un même projet
    Par NVCyril dans le forum Symfony
    Réponses: 1
    Dernier message: 02/05/2008, 15h31
  5. Réponses: 1
    Dernier message: 16/06/2006, 15h17

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