【问题标题】:How to extract .war files in java? ZIP vs JAR如何在java中提取.war文件? ZIP 与 JAR
【发布时间】:2011-12-14 12:40:07
【问题描述】:

我有一个网络程序,我希望用户能够导入.war 文件,并且我可以从.war 文件中提取某些文件。我找到了两个类库:java.util.zip.*java.util.jar.*。据我了解,WAR 文件是一个特殊的 JAR 文件,它是一个特殊的 ZIP 文件。那么使用java.util.jar会更好吗?如果 ZIP 和 JAR 文件几乎相同,为什么需要两个不同的库?

【问题讨论】:

  • 你将如何处理war文件中的文件?

标签: java jar zip war


【解决方案1】:

WAR 文件只是一个 JAR 文件,要提取它,只需发出以下 jar 命令 -

jar -xvf yourWARfileName.war

如果找不到 jar 命令(有时会在 Windows 命令提示符中发生),则指定完整路径,即在我的情况下,

 c:\java\jdk-1.7.0\bin\jar -xvf my-file.war

【讨论】:

  • 我使用了这个命令并提取了.war文件..但是所有这些都进入了bin文件夹..你可以粘贴选择提取位置的命令
  • 在 Java 中,问 OP。
【解决方案2】:

如果您查看JarFile API,您会发现它是ZipFile 类的子类。

jar 特定的类大多只是添加 jar 特定的功能,例如直接支持清单文件属性等。

这是 OOP“在行动”;由于 jar 文件是 zip 文件,因此 jar 类可以使用 zip 功能并提供额外的实用程序。

【讨论】:

  • 对正确和接受的答案投反对票表示赞赏。
【解决方案3】:

只需将.war 重命名为.jar 并使用Winrar(或任何其他存档管理器)解压缩即可。

【讨论】:

    【解决方案4】:

    如果您使用 Linux 或 Ubuntu,则可以直接从 .war 文件中提取数据。

    war 文件只是一个jar 文件,要提取它,只需使用jar 程序发出以下命令:

    jar -xvf yourWARfileName.war
    

    【讨论】:

      【解决方案5】:

      就像你说的,jar 一个 zip 文件(不是特殊类型,只是一个普通的旧 zip),所以任何一个库都可以工作。原因是普通人看到 *.zip 扩展名时,往往会解压缩它。由于应用服务器希望将其解压缩,因此简单的重命名可防止人们出于习惯而将其解压缩。同样,*.war 文件也应该保持未压缩状态。

      java.util.jar 基本上只是为 java.util.zip 添加了额外的功能,而额外的开销很少。让 java.util.jar 成为发帖等的助手,然后使用它。

      【讨论】:

        【解决方案6】:

        Jar 类/包用于特定的 Jar 文件机制,在某些情况下,Jar 文件使用清单。

        Zip 文件类/包处理任何包含 Jar 文件的压缩文件,这是一种压缩文件。

        Jar 类因此扩展了 Zip 包类。

        【讨论】:

          【解决方案7】:

          您可以使用周转并将应用程序部署到 tomcat 服务器:只需复制/粘贴到 webapps 文件夹下。 tomcat启动后,会创建一个应用名称的文件夹,你可以直接访问里面的内容

          【讨论】:

            【解决方案8】:

            对于 mac 用户:在终端命令中:

            unzip yourWARfileName.war
            

            【讨论】:

              猜你喜欢
              • 2017-08-21
              • 1970-01-01
              • 2015-11-17
              • 2020-02-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-10-08
              相关资源
              最近更新 更多