« Fichier de commande » : différence entre les versions
Ligne 125 : | Ligne 125 : | ||
* Dans tous les cas, suivre les instructions en ce qui concerne les archives qui doivent se trouver dans le classpath ! A vous de savoir où vous les mettez. | * Dans tous les cas, suivre les instructions en ce qui concerne les archives qui doivent se trouver dans le classpath ! A vous de savoir où vous les mettez. | ||
==== Fichiers | ==== Fichiers de commande pour lancer un programme avec le bon Classpath ==== | ||
Rappel: Sous Windows, les fichiers de commande simples s'appellent soit *.bat, soit *.cmd. Pour lancer un programm Java, on redéfinit soit la variable CLASSPATH (comme dans l'exemple xalan.bat ci-dessus), soit on utilise l'option -cp (comme dans l'exemple fop.bat ci-dessous). | |||
Exemple: Contenu d'un script appelé xalan.bat pour lancer Xalan | Exemple: Contenu d'un script appelé xalan.bat pour lancer Xalan |
Version du 29 avril 2015 à 18:35
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Definition
A un fichier de commandes (aussi appelé fichier batchest un script écrit pour le "shell" ou l'interpréteur de lignes de commandes pour un système d'opération.
C.f. Shell script (Edutechwiki Anglais) pour plus d'informations.
Fichiers de commande pour Windows
La notion de fichier de commande
Sur le système d'exploitation Windows NT et XP, un fichier batch est un fichier texte contenant une série de commandes. Quand le fichier batch est lancé, de la même manière (d'un point de vue utilisateur) qu'un exécutable ordinaire, les commandes du fichier sont exécutées dans l'ordre. Un fichier batch est l'équivalent d'un script shell sous Unix ou cygwin.
Les fichiers batch du Windows NT sont les fichiers dotés de l’extension .BAT ou .CMD.
En technologies éducatives, l'utilisation la plus fréquente de ces fichier "bat" est probablement avec des programmes Java (gratuits) pour lesquels leurs auteurs ne fournissent pas de script.
Chemins et répertoires de scripts
Windows trouve ses scripts en examinant les chemins définis dans la variable "PATH" (même chose sur Unix et Mac)
- Pour voir, ouvrir une fenêtre "Invite de commandes" et taper:
echo %Path%
- On conseille de créer un répertoire c:\bin pour y mettre tous vos scripts et autres petits logiciels utilisés en ligne de commande, et qu'il faut donc inclure dans le Path:
- Pour Win2000 et XP
- Démarrer -> Paramètres -> Panneau de configuration -> Système
- Choisir: Avancé -> Variables d'environnment
- Modifier la variable système "Path" en ajoutant à la fin (NE RIEN DETRUIRE) ;c:\bin
- Pour Windows 7
- Démarrer -> Panneau de configuration -> Système
- Dans le panneau à gauche: Paramètres système avancés -> dans la nouvelle fenêtre, tout en bas, Variables d'environnement
Exemple:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\bin
- Dans les variables utilisateur, ensuite insérer:
%Path%;c:\bin
- Pour Windows 8
- La procédure est pareille. Ci-dessous une copie d'écran:
Il donc impératif de laisser: %USERPROFILE%, %Path%, etc.
Ne changer rien dans les variables systèmes si vous ne savez pas exactement ce que vous faites. Votre système peut ne plus marcher ....
Voici un exemple concert où vous devez modifier un chemin d'accès en utilisant la variable "PATH" :
Dans Windows 7, il se peut que vous ayez un problème avec l'installation de CompendiumLD. Apparemment, le problème serait que CompendiumLD ne retrouve pas son chemin vers les fichiers Java! Donc, si vous pensez avoir installé la dernière version de Java, que vous pensez avoir bien installé CompendiumLD, mais que vous ne pouvez toujours pas lancer CompendiumLD, alors il faudrait vérifier les chemins d'accès des fichiers. Pour cela, lorsque vous êtes dans la fenêtre Variables d'environnement (voir ci-dessus), dans les variables du système, vérifier que la variable Path contienne un accès vers les fichiers de Java. Pour cela, cliquez dessus, puis cliquez sur modifier. Il doit y avoir quelque part ceci :
C:\Program Files (x86)\Java\jre6\bin
Ou du moins quelque chose de similaire (en fonction du répertoire où vous avez installé Java). Si cet élément de chemin ne se trouve pas dans la variable "Path", alors vous devez ajouter ce chemin d'accès dans la variable. Pour cela, il vaut mieux ne pas le placer directement dedans. Il vaut mieux ajouter un complément de chemin. Pour cela, dans les Variables utilisateur pour User (User = votre nom), cliquer sur Nouvelle. Donnez comme nom de variable Path et dans la valeur de la variable, mettez
%path%;
... et immédiatement après, le chemin d'accès exact vers les fichiers de Java. Pour l'exemple de répertoire ci-dessus, cela donne :
%path%;C:\Program Files (x86)\Java\jre6\bin
Enfin, cliquez sur ok à toutes les fenêtres du système. Désormais, vous devriez pouvoir lancer CompendiumLD.
Scripts pour lancer des programmes Java
- Pour vous simplifier la vie avec des utilitaires JAVA, on conseille vivement d'écrire un fichier *.bat ou *.cmd (script de commande) qui permettra de lancer des scripts java depuis partout, qui définissent des classpath etc. et qui vous évitent des choses à taper. En outre, selon l'installation de votre Windows, les fichiers *.jar exécutables ne marcheront pas (exemple: L'éditeur Reload)
- Note: sous XP on utilise souvent *.cmd au lieu de *.bat ...., ceux qui utilisent Linux devraient savoir ce qu'est un fichier sh, csh, bash, etc.
- Les processeurs XSLT sont souvent compliqués à lancer et le but de script est simplement de simplifier ce qu'il y a taper. Depuis le script on lance le programme en lui passant des paramètres.
- Exemple pour lancer Saxon, voici contenu du fichier sax.bat
- le script peut s'appeler comme vous voulez
- Si le fichier s'appellait sax.bat, l'utilisateur taperait: sax
rem lancer saxon avec la commande 'sax'
java -jar c:\bin\saxon8.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
- On fait de sorte que le programme Java recoive les arguments tapés en ligne de commande
- Les REM servent à ajouter des commentaires
Par exemple: si on tape dans une fenêtre de commande:
sax -o résultat.svg input.xml style.xsl
- Windows lance le script sax.bat qu'il va trouver dans c:\bin
- et associe "-o" à %1, "resultat.svg" à %2, "input.xml" à %3, etc
- et donc lance la commande suivante:
java -jar c:\bin\saxon8.jar -o resultat.svg input.xml style.xsl
La notion (vulgarisée) de classpath Java
- Dans le monde XML, beaucoup de programmes sont écrits en Java. Un programme Java est une collection de classes. Lorsqu'on fait appel à des procédures Java on doit toujours indiquer la classe (ou l'objet) à qui elles appartiennent. Quand un objet fait appel à un autre objet (classe) qui n'est pas défini au même endroit (répertoire de fichiers *.class ou une archive *.jar du répertoire) il cherche dans le classpath.
- Le classpath définit une série de chemins (path) qui indique ou il faut aller chercher des classes.
- Le classpath peut être défini par une variable du système (win, unix, etc) ou directement indiqué à Java ou encore être inclut dans la commande java.
Exemple:
- L'objet de la classe "org/apache/xalan/xslt/Process" n'est pas trouvé.
- Pour y remédier, vous mettez le chemin de xalan.jar dans le classpath
- en regardant le contenu du fichier *.jar avec Winzip vous allez voir qu'il existe un fichier org/apache/xalan/xslt/Process.class
- Si vous mettez ces "*.jar" dans c:\bin il faut un classpath comme:
c:\bin\xalan.jar;c:\bin\xercesImpl.jar; etc.
- Si vous laissiez les archives à l'endroit où vous les avez dézippées, il faudrait par exemple:
d:\soft\bla\xalan\bin\ma_classe.jar;d:\soft\....
- Dans tous les cas, suivre les instructions en ce qui concerne les archives qui doivent se trouver dans le classpath ! A vous de savoir où vous les mettez.
Fichiers de commande pour lancer un programme avec le bon Classpath
Rappel: Sous Windows, les fichiers de commande simples s'appellent soit *.bat, soit *.cmd. Pour lancer un programm Java, on redéfinit soit la variable CLASSPATH (comme dans l'exemple xalan.bat ci-dessus), soit on utilise l'option -cp (comme dans l'exemple fop.bat ci-dessous).
Exemple: Contenu d'un script appelé xalan.bat pour lancer Xalan
@echo off echo *** Appel du processeur XSLT *** set CLASSPATH=c:\bin\xalan.jar;c:\bin\xerces.jar; java org.apache.xalan.xslt.Process %1 %2 %3 %4 %5 %6 %7 %8 %9
Exemple: Contenu d'un script appelé fop.bat pour lancer FOP
- FOP est un processeur XSL-FO populaire
- On aurait pu éviter les lignes "set" et simplement donner un très long classpath à "-cp", mais la solution ci-dessous est plus facile à vérifier (nom des classes parfois difficiles à taper).
em @ECHO OFF
set LOCALCLASSPATH=c:\bin\fop.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\xml-apis.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\xercesImpl-2.2.1.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\xalan-2.4.1.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\batik.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\avalon-framework-cvs-20020806.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;c:\bin\jimi.jar
java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %1 %2 %3 %4 %5 %6 %7 %8
Exemple Saxon:
- Ce processeur XSLT a quelques extensions intéressantes (fichiers output multiples)
- http://saxon.sourceforge.net/ (nov 2005: saxon-B 8.* conseillé)
- Contenu du fichier "saxon8.bat" à TECFA:
java -jar w:\bin\saxon8.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
Fichiers de commande pour lancer une application Java avec GUI
Si vous faites, un fichier de commandes pour lancer une application GUI écrite par exemple en JAVA, la fenêtre reste ouverte, ce qui est inutile (une fois que cela marche).
- Exemple pour lancer l'éditeur JEDIT
Au lieu de
java -jar "c:\program files\jEdit\jedit.jar"
Utilisez la commande start:
start javaw.exe -jar "c:\program files\jEdit\jedit.jar"
Lancer d'autres logiciels
Les applications Java opensource ne sont qu'un exemple. Voici un autre. Malheureusement quand on installe GIMP il détecte la langue du système et affiche en français. Mauvais choix, car ce logiciel a été fait par des Anglophone et les traductions ne sont pas tjrs bien faites. Pour avoir GIMP en Anglais faites un fichier gimp.cmd et ensuite faites un shortcut (sur le desktop, dans le menu de démarrage, etc.).
set lang=en
cd \Program Files\Gimp-2.0\bin
start gimp-2.6.exe
exit
Eléments du langage de commande Windows
Voir commandes Windows
Liens
- http://fr.wikipedia.org/wiki/Cmd.exe
- http://www.robvanderwoude.com/batchfiles.html
- http://www.hotline-pc.org/batch.htm
- Chez Microsoft