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

Servlets/JSP Java Discussion :

execution d'un fichier .class


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut execution d'un fichier .class
    bonjour ,
    j'ai du mal à exécuter un fichier .class,
    alors que l'exécution se fait dans eclipse, quand je le fais avec l'invite de commande windows avec la commande (java StatusSchedulee) il m'affiche l'erreur suivante :Exception in thread "main" java.lang.NoClassDefFoundError: StatusSchedulee/class
    et en bas :
    Could not find the main class: StatusSchedulee.class program will exit


    le pire c'est que j'ai fais des exports du package en un fichier jar(sans oublier tout les options d'ajout de biblio et fichier MANIFEST et tout) mais en vain , j'arrive pas à lancer le program.
    Si quelqu'un à déjà rencontré ce type de problème prière de m'aider le plus tôt possible c'est très urgent svp , ça fait longtemps que je suis bloqué là dessus.
    merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    C'est un probleme de chemin vers le package contenant la classe à executer, il faut dire à java où se trouve ta classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp chemin_vers_package.nom_classe_a_executer

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    merci DevServlet pour ta réponse ,
    mais j'essaye de l'exécuter depuis le répertoire où elle se trouve même et je teste aussi avec le nom complet du package.
    vraiment je comprend pas, j'ai essayé toutes les possibilités et j'ai parcouru peut être tout l'internet mais rien ne veut marché c'est bizarre.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Pour exécuter une classe, outre qu'il faut qu'il ait une méthode public static main(String), il faut que la classe (plus précisément le répertoire racine de la hiérarchie de package) se trouve dans le classpath.

    Exemple :
    Pour exécuter : com.boite.soft.MaClasse
    Tu te positionnes (ligne de commande) dans le répertoire ou il y a le répertoire "com"
    Tu exécutes la ligne de commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath . com.boite.soft.MaClasse

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Citation Envoyé par mickilous Voir le message
    Pour exécuter : com.boite.soft.MaClasse
    Tu te positionnes (ligne de commande) dans le répertoire ou il y a le répertoire "com"
    Ce qui veut dire que pour toi, tu te positionnes dans le répertoire :
    C:\Documents and Settings\admin\workspace\sy\build\classes
    Et non pas "dans le répertoire com". OK ?

    Autre chose, on ne spécifie pas l'extension ".class" à l'exécution.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd C:\Documents and Settings\admin\workspace\sy\build\classes
    java -classpath . com.pe.sy.scheduler.planificateur.StatusSchedulee
    Après ça tu auras sans doute un problème avec les librairies quartz non présente dans ton classpath. Il faudra rajouter le chemin vers le bon jar dans ton classpath.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath .;../lib/quartz-1.5.1.jar  com.pe.sy.scheduler.planificateur.StatusSchedulee

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    bonjour et merci beaucoup pour votre aide.
    bon, quand je fais :"echo %classpath%" il m'affiche ça:
    C:\Documents and Settings\admin\workspace\sy\WebContent\WEB-INF\lib;.;
    et dans ce lib j'ai toutes les librairies qaurtz et autres.
    donc je fais:
    classes> java -classpath %classpath% com.pe.sy.scheduler.planificateur.StatusSchedulee
    ça donne la même erreur:
    Exception in thread "main" java.lang.NoClassDefFoundError: and

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Suis bien cette exemple et ca doit normalement marcher
    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
     
    if ["%JAVA_HOME%"]==[""] goto setjava
    set HOME=.
    set LIB=%HOME%\lib
    set BUILD=%HOME%\classes
     
    set CP=%BUILD%
    set CP=%CP%;%LIB%\ant.jar
    set CP=%CP%;%LIB%\jxl.jar
     
    java -classpath "%CP%" Main.MiseEnOeuvre
    pause
    goto :EOF
     
    :setjava
    echo "JAVA_HOME not set,install your jdk and set this variable."
    pause
    goto :EOF
    Dans mon répertoire classes j'ai toutes mes sources compilées suivant la hiérarchie de ton projet.
    Adapte cet exemple à ton pb et redis moi.
    Sinon envoi moi juste l'entete de la classe que tu veux executer.
    t'as forcement un pb de classpath.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    bonjour et merci pour votre aide,
    toujours rien ne marche voila la class que je veux exécuter
    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
    46
    47
    48
    49
    50
    51
    52
     
    package com.pe.sy.scheduler.planificateur;
     
     
    import org.quartz.CronTrigger;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.impl.StdSchedulerFactory;
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import java.util.*;
    import java.lang.*;
     
     
     
    public class StatusSchedulee {
     
    	public static void main(String[] args)
    	  {
    	    try{
    	      new StatusSchedulee();
    	    }catch(Exception e){
    	      e.printStackTrace();
    	    }
    	  }
    	  public StatusSchedulee()throws Exception{
    	    SchedulerFactory sf = new StdSchedulerFactory();
    	    Scheduler sche = sf.getScheduler();
    	    sche.start();
     
     
     
     
    	    	    JobDetail jDetail4 = new JobDetail(
    	    	    	    "Show status4",sche.DEFAULT_GROUP,login.class);
    	    	    	    CronTrigger cronTrigger4 = new CronTrigger(
    	    	    	    "Cron Trigger4",sche.DEFAULT_GROUP,"0 38 9 ? * *");
    	    	    	    sche.scheduleJob(jDetail4, cronTrigger4); 	    
     
    	  //  sche.shutdown();
    	    if(sche.isShutdown()){
    	      System.out.println("Scheduler is shutdown!");
    	      System.out.println("Job cann't be executed here.");
    	    }
    	    else{
    	      System.out.println("Scheduler isn't shutdown!");
    	      System.out.println("Job is executed here.");
    	    }
    	  }
    	}
    j'ai la même erreur toujours.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Montre nous plutôt à quoi ressemble ton arbo de fichiers, ta ligne de commande et ou tu te positionnes lorsque tu l'exécutes.

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

Discussions similaires

  1. comment cree une application executable depuis un fichier class
    Par lenetfm dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 19/03/2008, 11h48
  2. [info]Les fichiers .class
    Par vinzzzz dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/03/2005, 00h43
  3. Requete d'execution d'un fichier
    Par minimoi1234 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/03/2005, 16h36
  4. [info] suppression cache fichiers .class
    Par nicolas581 dans le forum Applets
    Réponses: 3
    Dernier message: 06/08/2004, 11h39
  5. [JSP][Tomcat] COmment choisir la place des fichiers .class?
    Par mathieu dans le forum Tomcat et TomEE
    Réponses: 16
    Dernier message: 03/03/2004, 09h24

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