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

Java Discussion :

execution de jar et bat


Sujet :

Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut execution de jar et bat
    Bonjour,
    j'ai fini un programme qui utilise 4 fichiers .bat et deux fichiers .jar.
    je voulais les executer dans un autre bat le tout avec une tache planifiée.
    Le probleme c'est que mon premier bat lance un fichier exe (obligé il faut ajouter -v -b) , or le -b signifie qu'il est lancé dans un batch et donc il ferme avec un exit la console -> impossible de faire la suite.
    De plus, l'execution de mes jar est apparement impossible par la console mais seulement par le clic ( surement parce qu'il est executé par le jre java ).
    Je me demandais s'il était pas possible de le faire avec un autre executable general du style .exe (je veux dire lancer tous les executables dans cet executable qui sera lui meme planifié par windows)
    J'espere que j'ai été clair
    Pour ceux qui trouveront la solution la plus simple c'est a dire les executer un par un, je dois vous prevenir que mon programme sera exécuté sur 200serveurs, je me vois mal imposer a ma société la planification de 6 executables par serveur! (et en plus ça ne fait pas très propre )
    merci beaucoup!!!!!!

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par kavdo34 Voir le message
    Le probleme c'est que mon premier bat lance un fichier exe (obligé il faut ajouter -v -b) , or le -b signifie qu'il est lancé dans un batch et donc il ferme avec un exit la console -> impossible de faire la suite.
    Pas trop compris là: tu peux nous donner ton fichier bat "maitre" qui te pose problème? Et nous dire comment tu l'a planifié dans windows?

    De plus, l'execution de mes jar est apparement impossible par la console mais seulement par le clic ( surement parce qu'il est executé par le jre java ).
    la commande pour "lancer" un jar est java -jar <nomDuJar.jar>
    Je me demandais s'il était pas possible de le faire avec un autre executable general du style .exe (je veux dire lancer tous les executables dans cet executable qui sera lui meme planifié par windows)
    T'en est déjà à 4 .Bat, un .bat maitre et 2 jars, y a un moment donné où faut arrêter de rajouter des surcouches
    J'espere que j'ai été clair
    Pas vraiment, faudrait déjà voir la gueule des 5 .bat, ce serait plus parlant

    Pour ceux qui trouveront la solution la plus simple c'est a dire les executer un par un, je dois vous prevenir que mon programme sera exécuté sur 200serveurs, je me vois mal imposer a ma société la planification de 6 executables par serveur!
    Pourquoi ne pas faire un script style windows scripting host, qui ferait automatiquement, sur un clic, l'enregistrement des 6 tâches? De toutes facons, avec 200 serveurs, je doute que ca se fasse à la main, il doit y avoir un plan de déploiement prévu pour que les nouveaux services se déploient sur touts les serveurs comme des grands.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    ce que je peux faire c'est séparer mon execution qui exit la console et mettre la spécification jar dans mon bat principal... je pense que le probleme c'est juste ça finalement! merci je vais tester je te tiens au courant

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    eeeeuh...

    "C:\SpiralAFServ\suppxml1.bat"
    -jar <"C:\SpiralAFServ\recupIBM2.jar">
    -jar <"C:\SpiralAFServ\SpiralAFservWin3.jar">
    "C:\SpiralAFServ\zippeur4.bat"

    exit


    j'ai mal ecris la chose?
    j'ai testé -jar "C:\SpiralAFServ\recupIBM2.jar" "-jar n'est pas reconnu comme une commande interne"
    mais aussi -jar <C:\SpiralAFServ\recupIBM2.jar> "commande incorrecte"
    et enfin -jar C:\SpiralAFServ\recupIBM2.jar "commande incorrecte"

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il manque l'appel à java et le <...> est biebn entendu à remplacer par le nom du jar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "C:\SpiralAFServ\suppxml1.bat"
    java -jar "C:\SpiralAFServ\recupIBM2.jar"
    java -jar "C:\SpiralAFServ\SpiralAFservWin3.jar"
    "C:\SpiralAFServ\zippeur4.bat"

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    ecoute je sais pas j'essaye ac java -jar file mais il ne trouve pas le chemin d'accès spécifié... ça commence a me gaver
    t'es sur que java -jar n'est pas spécifique a linux par exemple?

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    j'ai trouvé le probleme! en fait c'était un .jar qui marchait sur eclipse mais pas apres avoir export! Le probleme c'est que je sais pourquoi ça ne marche pas mais je ne sais pas quoi faire...
    jai une ligne : String X = System.property("user.dir")
    Or, sur eclipse il trouve bien le directory de l'exécutable, mais ensuite une fois extrait en .jar, il me remplace user.dir par user.home !! donc du coup il me dit que le sous dossier n'existe pas. normal...
    Comment faire pour contrer ce probleme?

    PS : J'ai bien vérifié, avec eclipse il exécute bien tout sans probleme et dans le bon fichier

    merci

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la compilation va pas magiquement changer ton code. Si tu charge user.dir, il chargera user.dir. Maintenant faut bien lire la doc "User working directory", c'est le répertoire de travail. Sa valeur dans eclipse = projet. Sa valeur quand lancer depuis un .bat = répertoire courant du shell concerné.

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    oui je suis bien au courant
    le truc c'est que sous eclipse dossier courant = projet
    et le .jar est lancé et se trouve dans le répertoire C:\Spiral or son soit disant dossier courant se trouve dans mon Documents\user (sa correspond a user.home n'est ce pas?).... tkt pas je sais de quoi je parle j'ai utilisé la meme methode user.dir pour le java qui suit et LUI il marche sans probleme... Donc je vais te donner le code qui curieusement marche sur eclipse...on sait jamais si tu vois quelque chose qui m'aurait échappé....

    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
     
    import java.io.File;
     
    public class principale {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
     
     
    String dossierCourant= System.getProperty("user.dir");
    System.out.println(dossierCourant);
    	String X=dossierCourant;	
    		File f1 = new File ("C:"+File.separator+"IBM_Support") ;
     
    		File[] strFilesDirs = f1.listFiles( );
    		File fil=null;
     
     
    			fil=strFilesDirs[0]; 
    			System.out.println(fil);
     
     
    		File[] strFilesDirs2 = fil.listFiles( );
    			for ( int j = 0 ; j < strFilesDirs2.length ; j ++ ) {	
    			File in=strFilesDirs2[j];
    				String nom=in.getName();
    				System.out.println(nom);
     
     
     
    		if(nom.contains("event_application_list.html") ||nom.contains("event_security_list.html") ||nom.contains("event_system_list.html") ||nom.contains("sr.html") ||nom.contains("system_overview.html") )
    {File out=new File(X+File.separator+"as"+File.separator+nom);System.out.println(X);dep.copyFile(in, out);in.delete();}
    		else{in.delete();}
    			}fil.delete();
     
    	}
     
    }
    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
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.nio.channels.FileChannel;
     
     
    public class dep {
     
     
    	public static boolean copyFile(File source, File dest){
     
     
     
    		try{
    			// Declaration et ouverture des flux
    			java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
     
    			try{
    				java.io.FileOutputStream destinationFile = new java.io.FileOutputStream(dest) ;
     
    				try{
    					destinationFile = new FileOutputStream(dest);
     
    					// Lecture par segment de 0.5Mo 
    					byte buffer[] = new byte[512 * 1024];
    					int nbLecture;
     
    					while ((nbLecture = sourceFile.read(buffer)) != -1){
    						destinationFile.write(buffer, 0, nbLecture);
    					}
    				} finally {
    					destinationFile.close();
    				}
    			} finally {
    				sourceFile.close();
    			}
    		} catch (IOException e){
    			e.printStackTrace();
    			return false; // Erreur
    		}
     
    		return true; // Résultat OK  
    	}
     
    }
    Merci.


    Sortez les cotillons c'est mon 100eme post!! :p

  10. #10
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    Personne??? après des tests j'ai vu que si je l'activais au "clic" le jar s'exécute bien et tout! donc le probleme se trouve bien dans la ligne d'exécution a la main dans la console :

    java -jar file.jar
    peut etre qu'il comprend que le dossier de l'exécutable est celui ou est installé java par exemple non? il y a surement une commande a rajouter pour faire comprendre que je veux le dossier de l'exécutable jar et non du jre java n'est ce pas ????

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le dossier courant n'est pas l'endroit où se trouve le jar, c'est le dossier courant, point. Si vous voulez le changer, il suffit de faire un cd nouveaudossierCourant dans votre script. quand vous doubvlez cliquer sur le jar, windows défini le dossier courant comme étant celui où se trouve le jar, mais c'est un cas spécifique, pas une généralité!

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    ok alors dans ce cas j'ai compris ok!
    bon ba alors tout va bien!
    sauf que ça ouvre un petit probleme...
    Dans le bat qui precede le jar, je fais un cd vers un lien dur toujours fixe...
    existe t-il une commande cd que reviens au directory precedent (je ne parle pas de cd .. mais bien d'une commande qui reviens a l'ancien)
    De plus, si lors du clic windows prend en compte le fichier de l'executable, il doit surement exister une commande qui fait un cd vers ce dossier qu'elle qu'il soit avant de l'ancien l'exécutable non?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par kavdo34 Voir le message
    existe t-il une commande cd que reviens au directory precedent (je ne parle pas de cd .. mais bien d'une commande qui reviens a l'ancien)
    pas que je sache
    De plus, si lors du clic windows prend en compte le fichier de l'executable, il doit surement exister une commande qui fait un cd vers ce dossier qu'elle qu'il soit avant de l'ancien l'exécutable non?
    Non, le dossier courant est fonction de l'application lancée. Ainsi tout ce que l'explorateur windows a a faire c'est démarrer ton application avec un nouveau contexte dans lequel le dossier courant est celui du jar. Le dossier courant de l'explorateur n'est pas changé et, de toutes facons, je doute qu'il utilise cette notion.

Discussions similaires

  1. Lancement de l'executable avec un fichier.bat
    Par krolineeee dans le forum Windows
    Réponses: 3
    Dernier message: 28/07/2006, 16h03
  2. Réponses: 9
    Dernier message: 19/03/2006, 13h17
  3. [debutante][JAR] Impossible d'exécuter mon jar
    Par alison239 dans le forum Général Java
    Réponses: 2
    Dernier message: 20/02/2006, 20h15
  4. [jar][débutant] Impossible d'executer un jar
    Par dacid dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/12/2005, 21h10
  5. [JAR] Impossible d'executer un JAR ?
    Par elitost dans le forum Général Java
    Réponses: 12
    Dernier message: 17/03/2005, 22h45

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