如何在命令行中解压WAR文件

3

首先,我知道可以使用命令行中的jar解压WAR文件。

问题是,在目标机器上,只安装了JRE,没有安装JDK。我们不能依赖Windows来解压文件,因为它不支持长路径。

当您只安装了JRE时,如何在命令行中解压WAR文件呢?


1
使用任何支持 zip 的压缩工具。 - Elliott Frisch
1
请查看此线程中的答案 zip-or-unzip-from-the-command-prompt - SubOptimal
@SubOptimal 谢谢,看起来 [IO.Compression.ZipFile]::ExtractToDirectory 支持长路径。 - Jonathan Anctil
2个回答

4

WAR文件只是一个ZIP文件,您可以使用任何Zip工具(如7-Zip)解压缩它。如果您没有管理员帐户访问权限,您可以下载任何zip存档的便携式版本,不需要管理员密码。


1
我不能假设服务器上有第三方解压工具,如7-Zip。在@SubOtimal的帮助下,我找到了一个解决方案。 - Jonathan Anctil

1

仅供参考,我将分享从答案中得到的解决方案。

在我的问题中,我也遇到了路径过长的问题,我使用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)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接