如何在命令行中解压 WAR 文件
How to unzip a WAR file in command line
首先,我知道可以在命令行中使用 jar
解压 WAR 文件。
问题是在目标机器上,没有安装 JDK,只有 JRE。而且我们不能依赖 Windows 来解压文件,因为它不支持很好的长路径。
如果只安装了 JRE,如何在命令行中解压 WAR 文件?
WAR 文件只是一个 ZIP 文件,您可以使用任何 Zip 工具(如 7-Zip)解压缩它。如果您没有访问管理员帐户,您可以下载 portable version 任何 zip 存档,不需要管理员密码。
仅作记录,我将分享我从中获得的解决方案 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)
}
首先,我知道可以在命令行中使用 jar
解压 WAR 文件。
问题是在目标机器上,没有安装 JDK,只有 JRE。而且我们不能依赖 Windows 来解压文件,因为它不支持很好的长路径。
如果只安装了 JRE,如何在命令行中解压 WAR 文件?
WAR 文件只是一个 ZIP 文件,您可以使用任何 Zip 工具(如 7-Zip)解压缩它。如果您没有访问管理员帐户,您可以下载 portable version 任何 zip 存档,不需要管理员密码。
仅作记录,我将分享我从中获得的解决方案 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)
}