comment faire référence à tous les fichiers jar dans un répertoire dans mon fichier de commandes
J'ai créé un fichier de commandes "exécuter.chauve-souris":
set CLASSPATH=%CLASSPATH%.;.\Jars\app.jar;.\Jars\a.jar;.\Jars\b.jar;.\Jars\c.jar;.\Jars\d.jar;
java mypackage.mysubpackage.Start
pause
J'ai gardé tous les fichiers de classe liées à ma demande "app.jar" et
Start
est la classe où l'application commence l'exécution. J'ai cette "exécuter.chauve-souris" de fichiers et tous les pots que mon "app.jar" veut renvoyer dans le même répertoire.
J'ai gardé toutes ces pots dans les "Jarres" dossier de référence dans mon "exécuter.chauve-souris" fichier comme indiqué ci-dessus. Cependant, de se référer à chaque fichier jar par mon "exécuter.chauve-souris" j'ai besoin de spécifier le chemin d'accès ".\Jars\jarname.jar". Quand je suis à l'aide ".\Pots\*.jar" les pots ne sont pas visés par "exécuter.chauve-souris".
Quelqu'un peut-il fournir une solution de rechange?
et btw, bon vieux windows batch DE commande peut être utile aussi (voir stackoverflow.com/questions/180741/...)
bon point sur la version de java. Dans les systèmes linux c'est moins un problème dû à l'expansion de nom de fichier. Pas sûr que windows n'certains d'extension +1
et l'ofc sur unix comme les systèmes de commande fait beaucoup plus de sens 😉
OriginalL'auteur User 4.5.5 | 2012-06-21
Vous devez vous connecter pour publier un commentaire.
En fait, vous avez fait seulement la moitié du travail *.jar. Vous avez également besoin de les passer à java, comme le classpath:
java -cp $CLASSPATH mypackage.mysubpackage.Start
. (sous windows, je pense que l'utilisation d'une variable dans un script %CLASSPATH%)Plus tard edit: regardez BigMike commentaires sur votre question. Si vous utilisez une version de java < 1.6, vous pourriez avoir besoin d'utiliser une boucle pour construire un %CLASSPATH% y compris chaque bocal nom complet individuellement, parce que je devine que Windows shell ne fait pas les expansions tout comme les systèmes *nix.
Vous avez raison, il faut lire automatiquement. Mais parce que la définition du classpath peut être difficile, il est suggéré que la meilleure pratique consiste à utiliser le
java -cp
option. Cela vous permet également de spécifier le chemin de la classe individuellement pour chacune de vos applications sans affecter le reste des applications existantes, alors que la modification de la variable d'environnement aura un impact global.d'accord avec Bosquet, de jouer avec des variables d'environnement sous Windows peut être une grande douleur (aaah je m'ennuie du bon vieux autoexec.chauve-souris)
OriginalL'auteur Morfic
Vous pouvez essayer d'utiliser pour la boucle pour créer le chemin de classe dans le lot, comme ci-dessous.
+1: @guanxiaohua2k6, vous devez ajouter un supplément de
exit /b
après la pause pour éviter d'entrer dans leadd_jar
sous-routine après lafor
boucle se termine.OK, je vous remercie. Je l'ai ajouté.
Si tous les pots sont trouvés : C:\ProgramFiles\jars(*.jar), Comment les inclure ? Peut-on coder en dur ?
OriginalL'auteur guanxiaohua2k6
Vous pouvez essayer quelque chose qui est donné dans le lien ci-dessous http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html
Compréhension du chemin de classe, les caractères génériques de la section:
Donc dans votre cas vous devriez le faire :
et pas
fourni toutes les bocaux vous avez besoin sont présents dans .\Pots dossier
OriginalL'auteur Venkittarayan Chandrasekharan