使用命令行提取.jar文件

时间:2011-12-10 01:03:37

标签: java windows

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

我正在运行Windows 7

8 个答案:

答案 0 :(得分:117)

来自the docs

  

要从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

答案 1 :(得分:27)

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

答案 2 :(得分:18)

在Ubuntu中:

unzip file.jar -d dir_name_where_extracting

答案 3 :(得分:8)

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

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

答案 4 :(得分: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。

替代getNextJarEntry而不是使用getNextEntry

答案 5 :(得分:2)

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

答案 6 :(得分: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

  4. 那应该将文件解压缩到文件夹bin。在我的情况下查找文件.class我的Me.jar包含一个Valentine.class

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

答案 7 :(得分:-3)

要将jar解压缩到指定文件夹,请使用此命令通过命令提示符

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