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

avec Java Discussion :

Problème avec mon CLASSPATH


Sujet :

avec Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Problème avec mon CLASSPATH
    Bonjour,

    Quand j’exécute dans une console

    Code source test.jar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    public class Main {
     
    	/**
             * @param args
             * @throws ClassNotFoundException 
             * @throws SQLException 
             */
    	public static void main(String[] args) throws ClassNotFoundException, SQLException {
    		// TODO Auto-generated method stub
     
    		String pilote = "com.mysql.jdbc.Driver";
     
    		try {
    			Class.forName(pilote);
    			Connection connexion = DriverManager.getConnection("jdbc:mysql://dev1srv/recrutement","login","mdps");
     
    			Statement instruction = connexion.createStatement();
    			ResultSet resultat = instruction.executeQuery("SELECT * FROM tbl_candidats");
     
    			while(resultat.next()){
     
     
    				System.out.println("---------------------------");
    				System.out.println("N° ID_CANDIDAT: "+resultat.getInt("ID_CANDIDAT"));
    				System.out.println("Nom: "+resultat.getString("NOM"));
    				System.out.println("Prénom: "+resultat.getString("PRENOM"));
     
    			}
     
    			instruction.close();
                resultat.close();
     
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println("echec pilote : "+e);
     
     
    		}
     
     
     
    	}
     
    }
    J'obtient ceci comme erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error: Class names,'test.jar', are only accepted if annotation processing is explicitly requested
    Dans mon test.jar je fais un select sur une db mysql(dans Eclipse ça fonctionne bien).

    Dans ma variable CLASSPATH j'ai ceci comme valeur: C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\Java\jre6\lib\postgresql-9.1-901.jdbc4.jar;C:\Program Files\Java\jre6\lib\mysql-connector-java-5.1.19-bin.jar

    Qu'elle q'un a une idée de mon erreur ??

    D'avance merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Pourquoi essayes tu de compiler un fichier jar

    Tu ne te trompes pas par hasard ? Pour l'exécuter, Essayes plutôt :

    (avec classpath si nécessaire pour les libs si elle ne sont pas mises dans le MANIFEST)



    ping
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    javac, c'est pour compiler!

    c'est java -jar test.jar pour lancer le jar.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    oups oui je me trompe c'est bien java.

    Je fais donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -jar test.jar
    J'ai ceci comme erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Failed to load Main-Class manifest attributes from test.jar
    Mon but:

    J'ai un serveur mysql et je voudrais que mon jar fonctionne sur tous les postes du réseau sans devoir rajouter le mysql-connector-java-5.1.19-bin.jar sur chaque poste.

    Comment puis-je faire ???

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    As tu bien défini dans ton manifest.mf que tu as créés dans ton jar ?

    J'entends, rajouter le nom de la classe principale comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Manifest-Version: 1.0
    Main-Class: Main.main
    (sinon comment l'as tu généré ce jar?)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    J'ai généré mon jar avec eclipse:

    clic droit sur mon projet>export>JAR file>generate the manifest file.

    Si je vais dans le répertoire de mon projet avec msdos et que je fais

    et ensuite
    mon code s’exécute bien mais pourquoi je dois mettre juste le java Main et pas java Main.class ?

    Je voudrais avoir la même chose quand je double clic que mon test.jar

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Ok, tu as bien choisis la Main class dans "Select the class of the application entry point" ? (Tu peux aussi regarder dans le jar apres le MANIFEST et montrer son contenu).

    Pour la 2 ème chose, je répondrai bêtement : "parce que sinon ca n'ira pas"
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Ok super ça fonctionne.

    Donc je dois juste rajouter sur chaque poste où je veux déployer mon jar le classpath. Il n'a pas moyen de lier le driver jdbc à mon jar ???

    Encore merci de ton aide

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si, eclipse a une option "simple" a cocher: inclure les librairies dans le jar.

    l'option propre mais chiante, c'est d'ajouter dans le MANIFEST.MF l'entrée Class-Path: qui référence, relativement à l'emplacement du jar, les jar additionnels à charger.

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Comme le dit Tchize, tu peux utiliser l'export "Runnable JAR file" au lieu de "JAR file" tout court. (qui lui as besoin du manifest et tout le bazar). Mais faire un runnable Jar n'est parfois pas la meilleur idée (sauf au debut d'un projet pour ne pas trop se tracasser et avoir un truc qui marche).

    Mais sinon ton manifest devra ressembler a quelque chose comme celui ci:

    Manifest-Version: 1.0
    Main-Class: Main.main
    Class-Path: libs\mysql-connector-java-5.1.18-bin.jar
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Ok merci de vos explications

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2006, 19h48
  2. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26
  3. Problème avec mon service mysql et PhpMyAdmin
    Par Fixazo dans le forum Outils
    Réponses: 1
    Dernier message: 28/08/2005, 18h02
  4. problème avec mon lecteur CD
    Par leo13 dans le forum Périphériques
    Réponses: 3
    Dernier message: 16/08/2005, 11h21
  5. Problème avec mon firewall ...
    Par Wis dans le forum Tomcat et TomEE
    Réponses: 15
    Dernier message: 06/04/2004, 08h46

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