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

Eclipse Discussion :

Lancement "Java application" dans Eclipse équivalent en ligne de commande


Sujet :

Eclipse

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2016
    Messages : 13
    Points : 28
    Points
    28
    Par défaut Lancement "Java application" dans Eclipse équivalent en ligne de commande
    Bonjour à tous,

    J'ai su faire ça mais ça ne me revient pas : j'ai le batch DOS suivant à lancer. Il tourne très bien sous DOS.
    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
    REM Variable Java
     
    SET CONF_LOG=file:./conf/log4j.properties
     
    SET PROPERTIES_DIR=file:./conf
     
    REM ClassPath
     
    SET CLASSPATH="./lib/*;./conf;batch_exec-2.3.1-SNAPSHOT.jar"
     
    REM Classe exécutable
     
    SET COMMAND_RUNNER=org.springframework.batch.core.launch.support.CommandLineJobRunner
     
    REM Fichier de conf Spring
     
    SET CONTEXT_FILE=spring/applicationContext-batch.xml
     
    REM Nom du job
     
    SET JOB=integrationJob
     
    java -Dlog4j.configuration=%CONF_LOG% -Dext.properties.dir=%PROPERTIES_DIR% -classpath %CLASSPATH% %COMMAND_RUNNER% %CONTEXT_FILE% %JOB%
    Je veux le lancer sous Eclipse, donc je fais "Run configurations ... Java Application"
    Le premier onglet ça va :Nom : onglet1.jpg
Affichages : 2014
Taille : 12,6 Ko

    Mais le deuxième je n'y arrive pas (Program arguments)
    Nom : onglet2.jpg
Affichages : 2207
Taille : 32,3 Ko

    Déjà il ne trouve pas mon fichier log4j.properties que faut-il mettre ? Et à la place de -classpath ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Bonjour,

    Si tu veux exécuter un programme Java avec des arguments, tu définis ces derniers dans l'onglet argument et ensuite tu cliques sur Run. Par exemple si tu as un fichier .txt, tu le mets dans l'espace de saisie de Program arguments. Si le programme n'a jamais été exécuté, on fait Run >Java Application (si t'as une version récente d'Eclipse le programme est automatiquement exécuté sinon on est renvoyé dans la section de définition des arguments).
    Il faut aussi noter que le répertoire par défaut est celui du projet. Par conséquent, si l'argument fourni n'est pas dans ce répertoire, il va falloir changer ce dernier.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2016
    Messages : 13
    Points : 28
    Points
    28
    Par défaut
    Merci Kasko pour ta réponse. En fait j'ai mis les arguments suivants :

    Nom : onglet2.jpg
Affichages : 2170
Taille : 17,9 Ko

    Et j'ai l'erreur
    2016-04-15 16:54:50 ERROR CommandLineJobRunner:368 - Job Terminated in error: IOException parsing XML document from class path resource [-Dlog4j.configuration=src/main/resources/log4j.properties]; nested exception is java.io.FileNotFoundException: class path resource [-Dlog4j.configuration=src/main/resources/log4j.properties] cannot be opened because it does not exist
    Dans le batch en ligne de commande le fichier se trouve dans le répertoire /conf suite au build de mon projet. Dans le batch que je voudrais lancer par Eclipse, je le trouve dans src/main/resources/ donc le chemin est bon. Donc pourquoi ne le trouve t-il pas ?

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Il ne le trouve pas parce que je pense que tu as mal configuré le classpath. Une fois l'option Run configuration choisie, comment procèdes-tu ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2016
    Messages : 13
    Points : 28
    Points
    28
    Par défaut
    Tu as raison il faut remettre d'équerre le classpath.

    En fait il faut revenir à la ligne de commande que j'arrive pas à reproduire sous Eclipse.
    java -Dlog4j.configuration=%CONF_LOG% -Dext.properties.dir=%PROPERTIES_DIR% -classpath %CLASSPATH% %COMMAND_RUNNER% %CONTEXT_FILE% %JOB%
    Bon la classe exécutable est la bonne (%Commande_LINE_RUNNER%). Tu as raison il faut que je modifie le classpath et y mette notamment le jar du projet. Ça c'est dans l'onglet 3 et non pas dans les arguments. Pour %context_file% et %job% je les laisse dans les arguments. J'essaie ça Lundi, je te tiens au courant.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    En fait, une fois dans l'option Run configurations, au niveau de l'onglet Main, tu dois préciser le nom de ton projet dans la zone Project et préciser dans la zone Main class le nom de la classe à exécuter mais il faut que cette classe ait la méthode Main. Pour faire simple, après avoir fait Run configurations, si tu regardes dans le volet gauche, tu verras la liste de toutes tes classes. Il suffit de cliquer sur une contenant la méthode Main et tu verras que les zones Project et Main class sont automatiquement renseignées.
    En ce qui concerne les arguments, ce sont juste des paramètres qu'on passe à la méthode Main lors de l'exécution. Si t'as bien remarqué la méthode Main prend en paramètre un tableau de type String.

    Configure bien l'onglet Main et mets n'importe quoi comme argument et enfin exécute le programme, ça devrait s'exécuter correctement.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2016
    Messages : 13
    Points : 28
    Points
    28
    Par défaut
    Merci pour la clarté de tes explications Kasko, c'est tout à fait ça.
    J'ai réussi à lancer le batch sous eclipse et sous batch donc mon problème de départ est résolu.
    Mais il a fallu pour ça que je bidouille.
    J'ai deux config différentes.

    1. Pour lancer le batch sous eclipse j'ai créé une fonction main() (elle n'existait pas dans mes sources et le jar exécutable avait pour classe principale org.springframework.batch.core.launch.support.CommandLineJobRunner) dans laquelle j'appelle les fonctions de Spring Batch qui me permettent de lancer le batch, je mets les bons arguments dans "Run configurations" et "classpath" et tout marche nickel : mais je n'arrive pas à lancer ma classe principale dans la ligne de commande. J'ai essayé plusieurs choses sans succès.

    2. Pour lancer le batch en ligne de commande je ne change rien la classe principale est org.springframework.batch.core.launch.support.CommandLineJobRunner. Le seul souci c'est que dans le batch je voudrais pouvoir appeler ma classe principale nouvellement définie et j'y arrive pas

    Je patauge encore.
    En fait mon souci c'est que je n'arrive pas à traduire la ligne de commande en "Run configurations ..." eclipse. Inversement je n'arrive pas à traduire ma ligne de commande en config eclipse.

    D'où ma question : dans la ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Dlog4j.configuration=%CONF_LOG% -Dext.properties.dir=%PROPERTIES_DIR% -classpath %CLASSPATH% %COMMAND_RUNNER% %CONTEXT_FILE% %JOB%
    les deux premiers sont des paramètres ok. Ensuite %CLASSPATH% définit le classpath ok mais quid de %COMMAND_RUNNER% ? Dans ma logique il définissait la classe principale (en l'occurence la classe springbatch) n'est-ce pas ? Donc si je le remplace par la classe principale de mon projet ça doit marcher ? le souci c'est que ça ne marche pas !

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Bonjour Vinicius.
    Citation Envoyé par Vinicius Voir le message
    mais je n'arrive pas à lancer ma classe principale dans la ligne de commande. J'ai essayé plusieurs choses sans succès.
    Je ne sais pas ce que t'as utilisé pour lancer la classe principale mais c'est la commande java que l'on utilise pour le faire.

    Citation Envoyé par Vinicius Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Dlog4j.configuration=%CONF_LOG% -Dext.properties.dir=%PROPERTIES_DIR% -classpath %CLASSPATH% %COMMAND_RUNNER% %CONTEXT_FILE% %JOB%
    mais quid de %COMMAND_RUNNER% ? Dans ma logique il définissait la classe principale (en l'occurence la classe springbatch) n'est-ce pas ? Donc si je le remplace par la classe principale de mon projet ça doit marcher ? le souci c'est que ça ne marche pas !
    Désolé mais je ne saurais pas répondre avec exactitude à tes questions.

Discussions similaires

  1. Lancement infini application Android Eclipse
    Par Vincte dans le forum Android
    Réponses: 3
    Dernier message: 14/05/2012, 12h20
  2. Ouvrir une application dans eclipse
    Par _Eric_ dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 03/04/2008, 17h44
  3. Java Beans dans eclipse
    Par subzero82 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 07/05/2006, 17h46
  4. [Info] java script dans eclipse
    Par bf83 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/03/2006, 14h19
  5. [Tomcat]erreur au lancement de tomcat dans eclipse
    Par sebos63 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/12/2004, 10h40

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