繁体   English   中英

即使使用icacls授予了完全权限,也无法使用jar -xf提取zip文件

[英]Can't extract a zip file with jar -xf even after granting full permissions using icacls

首先,我不得不让icalcs向文件夹中的每个人授予完全权限,因为我不知道我应该写“ Tout le monde”而不是“ Everyone”,因为我的Windows 7语言是法语,实际上我需要此命令为此,我可以在相同权限更改的文件夹中解压缩zip文件。

我的批处理文件的代码如下:

call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2
icacls C:\Users\Feki\Desktop\vvv2 /grant "Tout le monde":f
call C:\Program Files\Java\jdk1.7.0_40\bin>jar xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip
ECHO.
ECHO Press any key to exit. 
pause>null

日志表明icalcs成功,但是当提取开始时,我收到一条“拒绝访问”消息

----编辑----

我试图确保我对zip文件具有提取的所有权限,所以我添加了

icacls C:\Users\Feki\Desktop\vvv2\* /grant "Tout le monde":f

在第一个icacls之后,但是提取仍然无法进行

首先,我想说的是,我认为您的脚本看起来有点怪异。

在第一行

call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2

您要将zip文件复制到桌面上的文件夹中,这已经需要C:\\Users\\Feki\\Desktop\\vvv2写访问权限,否则将无法使用。

在下一行中,您尝试设置此文件夹的访问权限:

icacls C:\Users\Feki\Desktop\vvv2 /grant "Tout le monde":f

如前所述,这没有多大意义,因为您已经将zip文件写入了此文件夹,因此您至少必须具有写访问权限。

现在解决问题,调用:

call C:\Program Files\Java\jdk1.7.0_40\bin>jar xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip

是绝对不应该起作用的,因为程序文件之间有一定的空间。 我不知道bin>jar应该是什么,但是如果这个对您有用,那么您可以通过这种方式使用它。

我会这样写:

call "%ProgramFiles%\Java\jdk1.7.0_40\bin\jar.exe" xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip

如果此呼叫给您Access denied. 消息,那么您可能在命令行的当前路径中没有写访问权。

请注意, jar实用程序会将zip文件的内容提取到命令行的当前路径。 这意味着如果您在c:\\则它将内容提取到c:\\ ;如果您在c:\\bla\\则它将内容提取到c:\\bla\\ (如果您使用完整路径调用它,或者仅当它位于PATH变量中时才使用jar ,则没有什么区别。)

因此,这似乎使您在glassfish-4.1.zip所在的路径中没有正确的访问权限,因为这是命令行的当前路径。 我猜您想将内容提取到桌面上的文件夹中。 为此,只需在发出提取调用之前将当前路径更改为此文件夹。

我猜脚本可能看起来像这样:

call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2
cd C:\Users\Feki\Desktop\vvv2\
call "%ProgramFiles%\Java\jdk1.7.0_40\bin\jar.exe" xf glassfish-4.1.zip

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM