我想使用以下命令将我的一个jar提取到指定目录 jar
命令行实用程序。
如果我了解这个正确的-C
选择应该是窍门,但是当我尝试
jar xvf myJar.jar -C ./directoryToExtractTo
我从jar实用程序获取使用信息,所以我做错了。
是我想要实现的东西jar
还是需要手动移动我的jar并在那里调用
jar xvf myJar.jar
Answers:
最好这样做。
导航到所需的文件夹结构
使用命令
jar -xvf 'Path_to_ur_Jar_file'
cd /my/path && jar -xvf 'Path_to_ur_Jar_file'
jar使用zip压缩,因此您可以使用任何unzip实用程序。
例:
$ unzip myJar.jar -d ./directoryToExtractTo
unzip myJar.jar -d out-directory
Xubuntu 12.04.1
jar命令本身没有此类选项。查看文档:
-C dir在执行jar命令的过程中临时更改目录(cd dir),同时处理以下inputfiles参数。它的操作旨在类似于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目录,并将classes目录中的所有文件添加到foo.jar中(不在jar文件中创建classes目录),然后更改回原始目录,然后再更改为bin目录以添加xyz.class到foo.jar。如果类包含文件bar1和bar2,那么这是使用jar tf foo.jar包含的jar文件:META-INF /
META-INF / MANIFEST.MF
bar1
bar2
xyz.class
如果您不想更改当前的工作目录,则在这样的子shell中运行extract命令可能会更容易。
mkdir -p "/path/to/target-dir"
(cd "/path/to/target-dir" && exec jar -xf "/path/to/your/war-file.war")
然后,您可以从任何工作目录执行此脚本。
[感谢David Schmitt的subshell技巧]
这就是我最终在.bat文件中使用的东西。当然只有Windows。
set CURRENT_DIR=%cd%
mkdir ./directoryToExtractTo
cd ./directoryToExtractTo
jar xvf %CURRENT_DIR%\myJar.jar
cd %CURRENT_DIR%
截至2020年10月的当前工作版本,已更新为使用maven-antrun-plugin 3.0.0。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>prepare</id>
<phase>package</phase>
<configuration>
<target>
<unzip src="target/shaded-jar/shade-test.jar"
dest="target/unpacked-shade/"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
-C
只是为了添加文件。