2

Я пытаюсь автоматизировать следующую ситуацию на рабочей станции Windows 7.

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

Я надеялся, что JAVA может установить переменную окружения, которая указывает на последнюю версию, но это не так. Максимум, что кажется, это обновить некоторые SYMLINKS, которые указывают на новую версию. Однако, поскольку это ссылки на файлы, я не думаю, что смогу использовать их для перемещения файлов JCE.

Я надеюсь создать скрипт, который будет извлекать файлы JCE из общего местоположения, распознавать последний путь для Java и копировать файлы JCE в нужное место.

Какие-либо предложения?

1 ответ1

1

Хорошо, вот пакетный скрипт, который найдет папку Java с наибольшим номером сборки версии, а затем скопирует все файлы из папки stage в правильную папку (только с самым высоким номером версии), как вам нужно для 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .