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

Java Discussion :

Définition du classpath sous OS X


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Par défaut Définition du classpath sous OS X
    Bonjour,

    J'ai du mal à comprendre comment définir (temporairement) le classpath en OSX (El Capitan) avec la version 8.... de Java. Je m'explique :


    J'ai sous ma racine deux dossiers :

    1) /jars
    qui contient tout un tas de fichiers xxxxx. jar que j'utilise fréquemment

    2) /Cinephil
    qui contient la classe "Toto" dans cinephil.jar. et dans le package "cinephil".

    je lance l'application par

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp ~/jars/*:~/Cinephil/cinephil.jar cinephil.Toto
    J'obtiens un message d'erreur qui m'indique que la classe Toto n'a pas été trouvée.

    Maintenant avec
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CD Cinephil
    java -cp ~/jars/*:cinephil.jar cinephil.Toto
    cela marche bien.

    Si je refais le premier test mais en inversant l'ordre
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp  ~/Cinephil/cinephil.jar:~/jars/*  cinephil.Toto
    Cette fois la classe Toto est bien trouvée, mais aucune des classes contenues dans un des jar du répertoire /Jars n'est trouvée.

    Il me semble que le second répertoire spécifié dans le ClassPath est simplement ignoré. Il y a surement une explication (sans doute m'y prends-je mal). Peut-on avoir plsuieurs fois le caractère ~ dans classpath ?

    Note : Comme je suis en test pour l'instant, je ne veux pas encore utiliser Export.


    Merci d'avance pour vos conseils avisés.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 910
    Billets dans le blog
    54
    Par défaut
    Essaie en remplaçant par le chemin complet ou par $HOME pour voir si c'est effectivement le cas.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre Expert

    Avatar de Songbird
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Juin 2015
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 494
    Billets dans le blog
    8
    Par défaut
    Salut,

    Il me semble que le second répertoire spécifié dans le ClassPath est simplement ignoré. Il y a surement une explication (sans doute m'y prends-je mal). Peut-on avoir plsuieurs fois le caractère ~ dans classpath ?
    Pour ma part toutes les dépendances de mon projet se trouve toujours dans un sous-dossier du répertoire racine, parce que là si tu portes ton archive sur une autre machine, ça risque de casser. (sauf si jars est également un répertoire se trouvant à la racine de ton projet)
    Si ça ne fonctionne toujours pas, je t'invite à essayer.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Par défaut
    Merci beaucoup Bouye, effectivement en changeant ~ par $HOME, cela fonctionne très bien. Ce qui signifie que -cp accepte le premier ~ mais ignore le second. Bizarre non ?
    Est-ce un bug ? ou est-ce que ceci fait partie des spécifications du programme Java ?

    Merci aussi Songbird, et pour répondre à tes commentaires, en réalité, il ne s'agit pas ici de disques différents, mes deux répertoires Jars et Cinephil sont tous deux directement sous ma racine.
    Effectivement le répertoire JARS contient plusieurs fichiers jar (communs à différentes applications) , que j'exporte aussi sur les autres environnements, cela m'évite de recopier, à chaque changement de version, Java les fichiers jar dans ext (sous Windows) ou /Library/Java/Extensions (sous OS X).

  5. #5
    Membre Expert

    Avatar de Songbird
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Juin 2015
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 494
    Billets dans le blog
    8
    Par défaut
    Ce qui signifie que -cp accepte le premier ~ mais ignore le second. Bizarre non ?
    Est-ce un bug ? ou est-ce que ceci fait partie des spécifications du programme Java ?
    La commande cp doit tout simplement considérer le second tilde (~) comme faisant parti du chemin en tant que caractère, et non comme un alias. (peut-être pour éviter de recopier le chemin du répertoire utilisateur si un fichier/répertoire venait à utiliser ce caractère)

    Bonne journée !

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 910
    Billets dans le blog
    54
    Par défaut
    Oui cet argument est quand même un poil bizarre. Ne pas negliger un eventuel bug sous macOS aussi (faudrait tester si ca pose le même genre de soucis sous Linux ou Windows/Cygwin). En même temps quel intérêt de mettre cette syntaxe bizarre avec * alors que la JVM aurai pu tout bêtement aller vérifier si le chemin indiqué était un fichier ou un répertoire (et donc du coup faire un inclusion widlcard implicite de tous les .jar, .zip et .class dedans), mais non c’était trop compliqué pour les gens de Sun ...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Classpath sous mac os
    Par filot dans le forum Mac OS X
    Réponses: 2
    Dernier message: 09/06/2010, 12h58
  2. Configuration CLASSPATH sous Linux
    Par habasque dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 18/04/2007, 19h25
  3. J2SE - $CLASSPATH sous Linux
    Par nmqm dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 21/02/2006, 08h34
  4. [Système] le classpath sous windows 98
    Par helonear dans le forum Général Java
    Réponses: 2
    Dernier message: 23/06/2005, 08h48
  5. [Linux]CLASSPATH sous Linux
    Par Abdelkaoui dans le forum Général Java
    Réponses: 8
    Dernier message: 20/09/2004, 11h36

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