使用命令行提取.jar文件


115

我正在尝试从.jar文件中提取文件。我该如何使用命令行?

我正在运行Windows 7

Answers:


146

文档

要从jar文件中提取文件,请使用x,如下所示:

C:\Java> jar xf myFile.jar

要仅从jar文件中提取某些文件,请提供其文件名:

C:\Java> jar xf myFile.jar foo bar

该文件夹jar可能不C:\Java适合您,在我的Windows分区上是:

C:\Program Files (x86)\Java\jdk[some_version_here]\bin

除非的位置jar在您的路径环境变量中,否则您必须指定完整路径/从文件夹内部运行程序。

编辑:这是另一篇文章,专门针对提取JAR:http : //docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


好的,当我执行该jar xf ...命令时,出现错误:'jar'无法识别为内部或外部命令,可操作程序或批处理文件。我该如何解决?
Bobby C

1
@BobbyC:指定jar.exe文件夹的完整路径或从文件夹内部运行它。
AusCBloke 2011年

谢谢,一切都很好!
鲍比C

2
java.io.IOException:META-INF:无法在sun的sun.tools.jar.Main.extract(Main.java:852)的sun.tools.jar.Main.extractFile(Main.java:928)处创建目录sun.tools.jar.Main.main(Main.java:1149)的.tools.jar.Main.run(Main.java:242)如何清除此错误?
AnilPatel

1
@AnilPatel我通过以管理员身份运行命令提示符(右键单击“以管理员身份运行”)来解决此问题
jessieloo 2015年

34

请注意,jar文件是一个Zip文件,任何Zip工具(例如7-Zip)都可以在jar中查看。


6
请看这里,这就是您所需要的。
阿里

28

在Ubuntu中:

unzip file.jar -d dir_name_where_extracting


1
对于没有jar命令的系统很有用!没有在CentOS 5.7的任何问题的作品
djthoms

8

您可以使用以下命令: jar xf rt.jar

其中X代表提取的地方是,并且f选项将指示在命令行中而不是通过stdin指定要从中提取文件的JAR文件。


2

Java有一个专门用于zip文件的类,还有一个专门用于Jar文件的类。

java.util.jar.JarOutputStream
java.util.jar.JarInputStream

使用控制台上的命令,使用设置为system.in的扫描仪,

Scanner console = new Scanner(System.in);
String input = console.nextLine();

然后获取所有组件并将它们写为文件。

JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
    //do stuff with JE
}

您还可以改用java.util.zip.ZipInputStream,因为看到JAR文件与ZIP文件的格式相同,ZipInputStream将能够处理Jar文件,实际上JarInputStream实际上扩展了ZipInputStream。

另外一种替代方法是使用getNextEntry代替getNextJarEntry


2

jar xf myFile.jar
将myFile更改为文件名,
这会将内容保存在
应执行的.jar文件的当前文件夹中 :)


0

给定一个名为Me.Jar的文件:

  1. 转到cmd
  2. 按下Enter
  3. 使用Java jar命令-我正在使用jdk1.8.0_31,因此我将输入

    C:\ Program Files(x86)\ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar

那应该将文件提取到文件夹bin中。在我的情况下寻找文件.class我的Me.jar包含Valentine.class

键入java Valentine并按Enter,将打开您的消息文件。


-3

要将jar提取到指定的文件夹中,请通过命令提示符使用此命令

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

7
这行不通。-C只能在创建jar文件时使用。
unwichtich,2015年

@unwichtich在这种情况下,是否可以指定目标文件夹?
在线

2
在Linux系统上,您可以使用unzip file.jar -d dir_name_where_extracting,在Windows上,您必须将JAR复制/移动到目标文件夹,然后将其解压缩到其中...
unwichtich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.