【问题标题】:Linux command for extracting war file?用于提取war文件的Linux命令?
【发布时间】:2025-12-28 11:10:11
【问题描述】:

如何使用 Linux 命令提示符提取 .war 文件?

【问题讨论】:

    标签: java linux war


    【解决方案1】:

    提取war文件中的特定文件夹(目录):

    # unzip <war file> '<folder to extract/*>' -d <destination path> 
    unzip app##123.war 'some-dir/*' -d extracted/
    

    您会因此得到./extracted/some-dir/

    【讨论】:

      【解决方案2】:

      使用 unzip

      unzip -c whatever.war META-INF/MANIFEST.MF  
      

      它将在终端打印输出。

      为了提取所有文件,

       unzip whatever.war
      

      使用 jar

      jar xvf test.war
      

      注意! jar 命令将战争内容提取到当前目录。 到子目录(就像 Tomcat 一样)。

      【讨论】:

      • 我实际上认为jar 命令更好,因为它旨在做到这一点。
      • @extraneon 你能解释一下为什么jar 更好吗?他们都提取了文件夹,那么为什么您认为jar 更好?我不认为 它是为此而设计的 一个有效的论点。
      • @extraneon 好吧,这取决于特定情况:例如,在 cpu 利用率方面,unzip 远优于 jar(0.624 CPU vs 1.063 CPU used)cpu migration(0 vs 16)性能计数器统计'jar xvf Calendar.war': 325.095182 task-clock (msec) # 1.063 CPUs used 16 cpu-migrations #0.049 K/sec 3,049 page-faults #0.009 M/sec 0.305890466 seconds timeelapsed * Performance counter stats for 'unzip Calendar. war': 36.900667 task-clock (msec) # 0.624 CPUs used 0 cpu-migrations #0.000 K/sec 419 page-faults # 0.011 M/sec 0.059182220 seconds time elapsed
      • 在解压命令中,如果我们使用'-c',它会将文件解压到标准输出/屏幕(''CRT'')。提取war文件(所有文件)不要使用标志c。
      • 如果你有一个 WAR 文件,你的系统上已经存在 jar。解压可能不行。
      【解决方案3】:

      war 文件只是具有特定目录结构的 zip 文件。所以可以使用unzip或者jar工具解压。

      但您可能不想这样做。如果您将 war 文件添加到 Tomcat 的 webapps 目录中,Tomcat 将负责提取/安装 war 文件。

      【讨论】:

      • 有时 Tomcat 不会提取存档,您必须手动进行。它可能发生。
      • 在这种情况下,您可能需要重新启动 Tomcat,或者使用“触摸 ”,以便 Tomcat 开始提取。
      • 有时Weblogic不想使用war :)
      【解决方案4】:

      或者

      jar xvf myproject.war

      【讨论】:

        【解决方案5】:

        您可以使用unzip 命令。

        【讨论】: