将jar提取到指定目录

And*_*dna 66 java command jar

我想使用jar命令行实用程序将我的一个jar提取到指定的目录.

如果我理解这个正确的-C选项应该诀窍但是当我尝试

jar xvf myJar.jar -C ./directoryToExtractTo
Run Code Online (Sandbox Code Playgroud)

我从我的jar实用程序获取使用信息,所以我做错了.

是我想要实现的东西,jar或者我需要手动移动我的罐子并在那里调用

jar xvf myJar.jar
Run Code Online (Sandbox Code Playgroud)

小智 65

jar使用zip压缩,因此您可以使用任何解压缩实用程序.

例:

$ unzip myJar.jar -d ./directoryToExtractTo

  • `为Xubuntu 12.04.1解压缩myJar.jar -d out-directory` (15认同)

Har*_*chi 53

最好这样做.

导航到所需的文件夹结构

使用该命令

jar -xvf  'Path_to_ur_Jar_file'
Run Code Online (Sandbox Code Playgroud)

  • 我可以这样做,我同意我能做到这一点,我只是想知道我是否误解了-C选项,而且似乎就是这样. (7认同)
  • 如果你想在一行中像我一样:`cd/my/path && jar -xvf'Path_to_ur_Jar_file'` (2认同)

小智 13

jar命令本身没有这样的选项.查看文档:

-C dir在处理以下inputfiles参数时,在执行jar命令期间临时更改目录(cd dir).其操作旨在类似于UNIX tar实用程序的-C选项.例如:jar uf foo.jar -C classes bar.class更改为classes目录,并将该目录中的bar.class添加到foo.jar.以下命令,jar uf foo.jar -C classes.-C bin xyz.class更改为classes目录并将类目录中的所有文件添加到foo.jar(不在jar文件中创建类目录),然后在更改为bin目录之前更改回原始目录以添加xyz.class到foo.jar.如果类包含文件bar1和bar2,那么这里是jar文件包含jar tf foo.jar:META-INF /

META-INF/MANIFEST.MF

BAR1

BAR2

xyz.class


小智 7

如果您不想更改当前的工作目录,在这样的子 shell 中运行提取命令可能会更容易。

mkdir -p "/path/to/target-dir"
(cd "/path/to/target-dir" && exec jar -xf "/path/to/your/war-file.war")
Run Code Online (Sandbox Code Playgroud)

然后,您可以从任何工作目录执行此脚本。

[感谢David Schmitt的 subshel​​l 技巧]


小智 5

这对我有用。

我创建了一个文件夹,然后使用命令提示符下的 CD 选项更改为该文件夹。

然后从那里执行罐子。

d:\LS\afterchange>jar xvf ..\mywar.war
Run Code Online (Sandbox Code Playgroud)