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

时间:2016-04-19 14:39:31

标签: java command-line jar war unzip

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

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

如果只安装了JRE,如何在命令行中解压缩WAR文件?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

为了记录,我将分享我从这个answer获得的解决方案。

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