Во-первых, я знаю, что можно распаковать файл WAR с помощью jar в командной строке.

Проблема в том, что на целевой машине не установлен JDK, только JRE. И мы не можем полагаться на Windows, чтобы распаковать файл, потому что он не поддерживает длинный путь.

Как можно распаковать файл WAR в командной строке, если у вас установлена только JRE?

1
Jonathan Anctil 19 Апр 2016 в 17:39

2 ответа

Лучший ответ

Для записи я поделюсь своим решением, которое я получил от этого ответ.

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

function Unzip-File($file) {    
    $path = [io.path]::GetDirectoryName($file.FullName)
    $filename = [io.path]::GetFileNameWithoutExtension($file.FullName)
    $targetPath = Join-Path $path $filename;

    # Check if the directory exists.    
    if(Test-Path $targetPath) {
        # Remove the directory before unzipping.
        Remove-Item $targetPath -recurse
    }

    # Unzip file.
    Add-Type -A System.IO.Compression.FileSystem
    [IO.Compression.ZipFile]::ExtractToDirectory($file, $targetPath)
}
1
Community 23 Май 2017 в 10:28

Файл WAR - это просто ZIP-файл, вы можете распаковать его с помощью любого инструмента Zip (например, 7-Zip). Если у вас нет учетной записи администратора для доступа, вы можете просто загрузить портативную версию любого zip-архив, который не требует пароля администратора.

2
PotatoIng_ 19 Апр 2016 в 15:12