Пакетний файл, щоб додати файли розширень Java Cryptography Extension до оновленої Java


2

Я намагаюся автоматизувати наступну ситуацію на робочій станції Windows 7.

Я використовую Java лише для однієї програми постачальника, яка вимагає розміщення файлів розширення криптографії Java в \ безпеці. Однак кожного разу, коли оновлення Java створюється нова папка, що посилається на номер збірки Java, а файли JCE повинні бути скопійовані знову в нове місце.

Я сподівався, що JAVA може встановити змінну середовища, яка вказувала б на останню версію, але це не так. Найбільш здається, що це зробити - оновити деякі SYMLINKS, які вказують на нову версію. Однак, оскільки це посилання на файли, я не думаю, що я можу їх використовувати для переміщення файлів JCE.

Я сподіваюся створити сценарій, який захопить файли JCE з загального місця, визначить останній шлях для Java та скопіює файли JCE у потрібне місце.

Будь-які пропозиції?


Мені доведеться пройти повний шлях для вас. Однак це щось на зразок c: \ програмних файлів (x86) \ Java \ java18 _ ### \ jre \ lib \ security, де '###' - номер збірки, який змінюється з кожним оновленням, застосованим до Java. Таким чином, шлях змінюється з кожним оновленням Java. Дякую.
tcv

Стару папку та файли видаляють. Файли JCE потрібно скопіювати заново в каталог безпеки під новим батьківським номером збірки.
tcv

У мене є статична папка десь в іншому місці, яка містить файли JCE, так. Java залишає фрагменти старої структури папок збірки, але не відповідні папки, такі як lib та безпека. Чесно кажучи, я не знаю, чому оновлення не залишає нічого позаду, як єдине місце, де я можу розмістити файли JCE, знаходиться під новою структурою папок номерів збірки.
tcv

Дякую, друже. Цікаво, чи щось так просто, як копія c: \ pathtojre *. * C: \ програмні файли (x86) \ java \ java18 _ ??? \ jre \ lib \ security *. * Буде працювати?
tcv

1
Я думаю, що найчистіший спосіб - визначити найбільшу кількість збірки та скопіювати файли на потрібне місце. Копіювання у кожну паповану нумеровану папку також працюватиме, і так, файлів мало.
tcv

Відповіді:


1

Гаразд, ось пакетний сценарій, який знайде папку Java з найвищим номером збірки версії, а потім скопіює всі файли зі своєї папки на стадії у потрібну папку (лише з найвищим номером версії), як вам потрібно для Java, встановленої на вашій машині.

Я також вклав туди деяку логіку IF, якщо \jre\lib\securityкаталог не існує, він створює його, а потім виконує COPYкоманду.

Збережіть це у текстовому файлі та назви з .cmdрозширенням. Вам може знадобитися запустити це як адміністратор, так як C:\Program Files(x86)\Javaпапка може вимагати дозволу адміністратора для його копіювання.

Зразковий пакетний сценарій

@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

ОГО. Дякую. Я перевірю це в ці вихідні і дам вам знати, як це працює.
tcv

Це працює! Мені довелося внести кілька змін, головним чином через мою несправну пам’ять про залучені шляхи, але це працює добре. Я знаю трохи Python, але пакетні сценарії - це темне мистецтво. Це чудово. Дякую.
tcv

О ... немає етикетки EOF, тому рядок завжди виходить з ладу.
tcv

2
EOFЦе End Of Fileтак , що просто говорить йому йти до EOFтак це фіктивна мітка. Ви можете замінити його, EXIT /Bякщо хочете .... Насправді я прокоментую це GOTO EOFі поставте EXIT /Bвище. Радий, що це працює для вас, і я ціную це питання також завжди готовим до виклику.
Pimp Juice IT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.