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 :

Ordonnancement de .bat appelé par un jar


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut Ordonnancement de .bat appelé par un jar
    Bonjour,

    N'ayant par d'application sur des serveurs je souhaite lancer plusieurs batch via un .jar.

    Pour résumer :

    Un .jar est activé et dans un fichier.properties j'ai une série de 5 .bat.

    Je veux que le premier .bat tourne, puis à la fin du premier le suivant etc.

    Comment ordonnancer tout cela ?

    Je boucle en lisant une collection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String command =  "cmd.exe /k Start "  + al.get(i) + " " + getParametre(); 
    				Runtime r = Runtime.getRuntime();
    				Process p = r.exec(command);
    				p.waitFor();
    Mais tous se lance en même temps (du coup j'ai des verrouillages fichiers etc).

    Avez-vous une solutions ?

    Merci d'avance !

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    Bonjour

    La boucle que vous faites, il faut qu'elle soit au sein d'un thread. Sinon la méthode .waitFor() ne fonctionnera pas (cf la javadoc)
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Sauf erreur je suis dans un tread :

    ...
    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
     
    	public void run() {
    		try {
    			recuperationDonnees(); 
    		} catch (IOException e1) {
     
    			e1.printStackTrace();
    		}
     
    		for(int i = 0; i < al.size(); i++)
            {
     
    			try 
    			{ 
    				String command =  "cmd.exe /k Start "  + al.get(i) + " " + getParametre(); 
    				Runtime r = Runtime.getRuntime();
    				Process p = r.exec(command);
    				int e = p.exitValue();
    				System.out.println(e);
    				p.waitFor();
     
    			}
     
    			catch (Exception e) 
    			{
     
    			} 	
    		}
     
    	}

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,



    Le thread n'a rien à voir avec tout cela...

    Par contre le code est loin d'être correct

    • Déjà un catch vide Ce devrait etre interdit !!!
    • Il faut privilégier ProcessBuilder à Runtime, et bien séparer les paramètre de la commande.
    • Il faut traiter ou fermer les flux d'entrée/sorties du process, ou bien les fermer si on ne les utilises pas.
    • Enfin avec cmd.exe /K Start tu crées un second process fils avec lequel tu n'a plus de lien. Il serait préférable d'utiliser cmd.exe /C...



    a++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Merci.

    Je vais creuser tout ça.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,



    Le thread n'a rien à voir avec tout cela...

    Par contre le code est loin d'être correct

    • Déjà un catch vide Ce devrait etre interdit !!!
    • Il faut privilégier ProcessBuilder à Runtime, et bien séparer les paramètre de la commande.
    • Il faut traiter ou fermer les flux d'entrée/sorties du process, ou bien les fermer si on ne les utilises pas.
    • Enfin avec cmd.exe /K Start tu crées un second process fils avec lequel tu n'a plus de lien. Il serait préférable d'utiliser cmd.exe /C...



    a++
    Merci, c'est idéal !

Discussions similaires

  1. JAR et appel par HTML
    Par Invité2 dans le forum Applets
    Réponses: 2
    Dernier message: 22/06/2011, 18h49
  2. [VB6] création dll win32 et appel par un autre programme
    Par Tankian85 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/03/2006, 08h21
  3. [JAR] probleme d'exec de JAR faisant appel à un autre JAR
    Par guis14 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/01/2006, 09h19
  4. Réponses: 1
    Dernier message: 22/12/2005, 17h28
  5. [CR10][ASP] Rapport appelé par asp vide...
    Par Gul Greg dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/11/2004, 16h41

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