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 :

main-class class-path problem


Sujet :

Langage Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut main-class class-path problem
    Bonjour,

    J'ai un petit problème sur mon projet Java, lorsque je veux exécuter le jar ...

    Le jar contient :

    > mypack
    --> myclass.class
    > META-INF
    --> MANIFEST.MF
    Le fichier MANIFEST.MF spécifie Main-Class et Class-Path vers une librairie externe (libExterne)

    Quand je le lance, j'ai une erreur du style : impossible de trouver ou de charger la classe mypack.myclass

    Si je retire le classpath, le jar se lance bien (du moins au début) puis se plante dès qu'il y a un accès a une méthode de libExterne (normal), avec l'erreur nominale () ClassNotFound

    Mais quand je rajoute le classpath, j'ai l'impression que java cherche la main-class dans le path ... C'est possible ??

    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Que contient ton MANIFEST.MF ?
    Où sont placé tes fichiers ?
    Comment lances-tu le programme ?


    a++

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    Mon MANIFEST

    Created-By: Moi
    Main-Class: mypack.myclass
    Class-Path: C:\devlibs\mylib.jar

    le contenu du paquet c'est l'arborescence de mon premier message

    mypack
    |-- myclass.class
    META-INF
    |-- MANIFEST.MF
    Et je lance le tout en

    java -jar myjar.jar

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    L'attribut "Class-Path" du manifest doit contenir le nom du jar via un chemin relatif au jar principal.
    Donc tu dois y spécifier le chemin de "mylib.jar" par rapport à ton jar principal "myjar.jar".


    De plus il ne faut pas utiliser d'antislash "\" mais seulement des slash, et ce quel que soit le système.


    a++

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    est-ce que je me plante sur l'utilisation de Main-Class et Class-Path ?
    Pour moi Main-Class spécifie toujours la classe de départ, mais peut-être que Class-Path override ce point d'entrée ?

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    L'attribut "Class-Path" du manifest doit contenir le nom du jar via un chemin relatif au jar principal.
    Donc tu dois y spécifier le chemin de "mylib.jar" par rapport à ton jar principal "myjar.jar".


    De plus il ne faut pas utiliser d'antislash "\" mais seulement des slash, et ce quel que soit le système.
    Merci merci, effectivement, pas d'antislash mais des slash arrg !! Ok il y a peut-être une doc qui le dit, mais le message d'erreur de la JVM est sacrément *$¤µ§^ù*% !!!!!

    En revanche, les chemins absolus sont bien supportés, sous linux comme sous windows

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

Discussions similaires

  1. ArrayList<Class> class class.setString()
    Par Onelove dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/08/2014, 20h42
  2. Choix stratégique entre main et classes personnelles
    Par Caxton dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 04/08/2009, 14h29
  3. Réponses: 2
    Dernier message: 20/02/2007, 22h26
  4. probleme avec la classe class
    Par thesorrow dans le forum Langage
    Réponses: 11
    Dernier message: 16/02/2007, 23h09
  5. export class via dll probleme ?
    Par cheroua dans le forum C++
    Réponses: 9
    Dernier message: 25/08/2006, 13h28

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