Fichier de commandes pour ajouter des fichiers d'extension Java Cryptography à Java mis à jour

2

J'essaie d'automatiser la situation suivante sur un poste de travail Windows 7.

J'utilise Java uniquement pour une application unique qui nécessite que les fichiers de l'extension de cryptographie Java soient placés dans \ security. Cependant, chaque fois que Java est mis à jour, un nouveau dossier est créé, référençant le numéro de construction du fichier Java. Les fichiers JCE doivent être à nouveau copiés dans le nouvel emplacement.

J'espérais que JAVA pourrait définir une variable d'environnement qui pointait vers la dernière version, mais ce n'est pas le cas. Au mieux, il semble mettre à jour certains SYMLINKS qui pointent vers la nouvelle version. Cependant, comme il s’agit de liens vers des fichiers, je ne pense pas pouvoir les utiliser pour déplacer les fichiers JCE.

Mon espoir est de créer un script qui récupérera les fichiers JCE à partir d'un emplacement commun, identifiera le dernier chemin d'accès pour Java et copiera les fichiers JCE à l'emplacement approprié.

Aucune suggestion?

tcv
la source
Je vais devoir obtenir le chemin complet pour vous. Cependant, cela ressemble à quelque chose comme c: \ program files (x86) \ Java \ java18 _ ### \ jre \ lib \ security où '###' est le numéro de build qui change à chaque mise à jour appliquée à Java. Donc, le chemin change avec chaque mise à jour Java. Merci.
tcv
L'ancien dossier et les fichiers sont supprimés. Les fichiers JCE doivent être copiés à nouveau dans le répertoire security sous le nouveau numéro de build parent.
tcv
J'ai un dossier statique quelque part ailleurs qui contient les fichiers JCE, oui. Java laisse des morceaux de l'ancienne structure de dossiers de construction, mais pas les dossiers pertinents comme lib et security. Honnêtement, je ne sais pas pourquoi la mise à jour laisse quelque chose derrière, car le seul endroit où je peux placer les fichiers JCE est sous la nouvelle structure de dossiers de numéros de build.
tcv
Merci mon pote. Je me demande si quelque chose d'aussi simple que copier c: \ chemintojre *. * C: \ programme (x86) \ java \ java18 _ ??? \ jre \ lib \ security *. * Fonctionnerait?
tcv
1
Je pense que le moyen le plus propre est de déterminer le nombre de build le plus élevé et de copier les fichiers à l'emplacement requis. Copier dans chaque dossier numéroté de construction fonctionnerait également et, oui, les fichiers sont petits.
tcv

Réponses:

1

Voici un script batch qui recherche le dossier Java avec le numéro de version le plus élevé, puis copie tous les fichiers de votre dossier stage dans le dossier approprié (avec le numéro de version le plus élevé uniquement) selon vos besoins pour Java installé sur votre ordinateur.

Je mets aussi un peu de logique SI là-bas, donc si le \jre\lib\security répertoire n’existe pas, il le crée puis fait la COPY commander.

Enregistrez ceci dans un fichier texte et nommez-le avec .cmd extension. Vous devrez peut-être exécuter cela en tant qu'administrateur, ainsi que C:\Program Files(x86)\Java dossier peut nécessiter des autorisations d’administrateur pour pouvoir y copier.

Exemple de script de lot

@ECHO ON
SETLOCAL

SET StageDir=C:\pathtojre

CD /D %programfiles(x86)%\Java

FOR /F "TOKENS=*" %%F in ('DIR /B /AD /ON java*') DO (
    SET HighestNumDir=%%F
)

SET HighNumFullDir=%programfiles(x86)%\Java\%HighestNumDir%\jre\lib\security

IF NOT EXIST "%HighNumFullDir%" MD "%HighNumFullDir%"

COPY /Y "%StageDir%\*.*" "%HighNumFullDir%"
EXIT /B
::::GOTO EOF
Pimp Juice IT
la source
SENSATIONNEL. Je vous remercie. Je vais le vérifier ce week-end et vous faire savoir comment cela fonctionne.
tcv
Ça marche! J'ai dû faire quelques modifications principalement à cause de ma mémoire défectueuse des chemins impliqués mais cela fonctionne bien. Je connais un peu Python, mais les scripts batch sont un art sombre. C'est merveilleux Je vous remercie.
tcv
Oh ... il n'y a pas d'étiquette EOF, donc cette ligne échoue toujours.
tcv
2
le EOF est End Of File de sorte que juste lui dit d'aller à EOF donc c'est une étiquette factice. Vous pouvez le remplacer par EXIT /B si vous voulez ... En fait, je commenterai la GOTO EOF et mis en EXIT /B au dessus de. Heureux que cela fonctionne pour vous et j'apprécie également la question, toujours prêt à relever le défi.
Pimp Juice IT