用命令行解压.jar文件

我试图从.jar文件中提取文件。 我如何使用命令行来做到这一点?

我正在运行Windows 7

从文档 :

要从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的位置在您的path环境variables中,否则您必须指定完整path/从文件夹内运行程序。

编辑:这是另一篇文章,特别关注于提取JAR: http : //docs.oracle.com/javase/tutorial/deployment/jar/unpack.html

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

在Ubuntu中:

unzip file.jar -d dir_name_where_extracting

你可以使用下面的命令: jar xf rt.jar

其中X表示提取, f表示提取文件的JAR文件的任何选项都是在命令行中指定的,而不是通过stdin。

jar xf myFile.jar
将myFile更改为您的文件的名称
这会将内容保存在.jar文件的当前文件夹中
那应该做:)

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。

替代方法也是getNextJarEntry,而不是getNextEntry

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

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

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

  1. 去cmd
  2. 按Enter键
  3. 使用Java jar命令 – 我正在使用jdk1.8.0_31,所以我会input

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

这应该提取文件到文件夹bin。 在我的例子中查找文件.class我的Me.jar包含一个Valentine.class

inputjava Valentine ,然后按Enter,你的消息文件将被打开。