Comment créer un fichier de commandes pour exécuter un fichier jar dans n'importe quel endroit du système

J'ai un MyFile.jar fichier. J'ai besoin d'un fichier de commandes qui recherche le fichier jar et la déclenche.

J'ai trouvé la solution suivante. Mais pour que le fichier de commandes et jar fichier doit être dans le même dossier.

java -jar %~dp0MyFile.jar %*

Nous ne savons pas où le client va placer le fichier jar dans leur système. Mais ils vont mettre fichier de commandes dans le dossier de démarrage.

Edit: j'ai réussi à écrire ce fichier de commandes pour l'instant.

`ECHO
 ECHO Locating the Jar

 IF EXIST java -jar MyFile.jar  ELSE (GOTO 

 SearchJar)

:SearchJar
SET the_path=D: & CD\
DIR /S/B File.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt

E: & CD\
DIR /S/B MyFile.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt

C: & CD\
DIR /S/B MyFile.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt

G: & CD\
DIR /S/B MyFile.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt

H: & CD\
DIR /S/B MyFile.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt

I: & CD\
DIR /S/B MyFile.jar > installer_location.txt
SET /P the_path=< installer_location.txt
if defined the_path goto :FoundIt
ECHO Jar not found.

:FoundIt
ECHO Jar file found at %the_path%

CALL java -jar %the_path%`

C'est de travailler dans mon système. Mais je ne sais pas si il y aura un moyen simple de vérifier tous les disques à la fois.

  • Ce n'est pas une demande raisonnable. Si vous êtes exigeant le client de faire un fichier batch dans leur dossier de démarrage, pourquoi ne pas les obliger à placer le fichier jar dans leur dossier de démarrage à la place? Avec un fichier de commandes, vous devez savoir où le fichier jar est situé dans le système de fichiers, que ce soit par une variable d'environnement, ou par un système de fichiers de recherche (très lent), ou en l'obligeant à être dans un endroit précis. La meilleure pratique consiste à utiliser l'installation d'un logiciel comme InstallShield.
  • Si vous placez le fichier jar où le fichier de commandes, le code que vous avez posté marchera car %~dp0 permettra d'évaluer à tout autre répertoire que le fichier de commandes est en. Vous devez le mettre entre guillemets doubles si: " %~dp0MyFile.jar" dans le cas où le répertoire contient des espaces.
  • Ne peut-on pas faire un fichier batch qui recherche le fichier jar dans le système et l'exécute? comme je l'ai mentionné dans ma question, java-jar %~dp0MyFile.jar %* à la recherche de son(fichier batch) de l'emplacement et de modifier le chemin d'accès vers le fichier de commandes emplacement et exécute le fichier jar. Est-il une manière que nous pouvons faire le fichier de commandes recheche jar maintenant?
  • Votre code ne pas modifier "le chemin vers le fichier de commandes de l'emplacement". Il appelle simplement java.exe avec un chemin d'accès complet vers le fichier jar.
  • Bon,l'a obtenu. Mais Encore, je din obtenez pas la réponse, je suis à la recherche d'. Est-il un moyen, de lot, de la recherche de fichiers pour fichier jar et appels java.exe avec un chemin d'accès complet vers le fichier jar?
  • Vous dites que vous ne savez pas où le client va placer le fichier jar. Le client ne peut savoir où le client va placer le fichier jar? Je propose l'ajout d'une interface graphique sélecteur de fichier pour votre script, et invitant l'utilisateur à l'emplacement du fichier jar. Une fois que vous avez cela, enregistrez-le dans le registre de sorte que vous pouvez récupérer sur d'autres pistes. Si la clé de registre n'existe pas ou si sa valeur en points d'une erreur de localisation, sélecteur de fichier de nouveau. Il en résultera une meilleure expérience pour l'utilisateur, surtout si le pc possède plusieurs lecteurs et met le pot sur d: ou e:. Une recherche peut prendre trop de temps.

InformationsquelleAutor Jenny | 2015-01-08