【问题标题】:How can I check the version number of Log4j in a .jar file?如何在 .jar 文件中检查 Log4j 的版本号?
【发布时间】:2022-01-16 20:39:24
【问题描述】:

我有一个可能正在使用 Log4j 的 .jar 项目。如何查看该 Log4j 的版本号?

这是一个可执行的 JAR 文件。我没有源代码,无法反编译。

【问题讨论】:

    标签: java jar log4j executable-jar


    【解决方案1】:

    解压 JAR 文件并查找清单文件 (META-INF\MANIFEST.MF)

    unzip -p file.jar META-INF/MANIFEST.MF
    

    【讨论】:

    • 如果将 OP 应用程序作为 JAR 分发的人将其创建为阴影 JAR 或嵌套 JAR,则主清单很可能不包含 log4j 的版本号。
    【解决方案2】:
    org.apache.log4j.Layout.class.getPackage().getImplementationVersion()
    

    【讨论】:

    • 您好,谢谢您的帮助,据说我没有源代码。不知道如何在类文件中运行它。
    • @Sourav - 您不需要应用程序的源代码或 log4j JAR 文件来运行它。您需要做的就是编写一些Java 代码。 (请记住:这是一个编程问题的网站,因此假设您知道如何编程。如果您将此作为非编程问题提出,那么您问错了地方。)
    【解决方案3】:

    如果你对服务器或主机有 sudo shell 访问权限,你可以通过这个或类似的东西得到快速而肮脏的答案:

    sudo find / -name "*log4j*" -print -exec unzip -p {} META-INF/MANIFEST.MF \;

    正如其他答案中提到的,这不适用于所有 JAR 文件,但它似乎对我来说。

    【讨论】:

      【解决方案4】:

      解压缩应用程序的 JAR 文件并检查目录“META-INF\maven\org.apache.logging.log4j\log4j-core”中的 pom.xml/property 文件中的版本

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案5】:

      如果您使用的是Linux,这会有所帮助。它查找 Log4j JAR 文件,提取它们的清单文件并打印 Implementation-Version: 行,这将显示 Log4j 的版本。

      locs=( $(sudo find / -name 'log4j*'|grep jar) )
      fcount=${#locs[@]}
      
      echo "Found $fcount jar files"
      echo " "
      
      for (( j=0; j<${fcount}; j++ ));
      do
         unzip ${locs[$j]} META-INF/MANIFEST.MF
         mv META-INF/MANIFEST.MF META-INF/MANIFEST$j.MF
      done
      
      echo " "
      for (( j=0; j<${fcount}; j++ ));
      do
          echo ${locs[$j]}
          tail -2 META-INF/MANIFEST$j.MF
      done
      

      【讨论】:

        【解决方案6】:

        有两种方法可以做到这一点

        方式一:

        jar -tfv my.jar | grep -i log4
        
          23590 Tue Aug 10 10:51:24 IST 2021 log4j-slf4j-impl-2.13.3.jar
          32722 Tue Aug 10 10:51:24 IST 2021 log4j-web-2.13.3.jar
        1714164 Tue Aug 10 10:51:24 IST 2021 log4j-core-2.13.3.jar
          23702 Tue Aug 10 10:51:24 IST 2021 log4j-over-slf4j-1.7.30.jar
         292301 Tue Aug 10 10:51:24 IST 2021 log4j-api-2.13.3.jar
          11259 Tue Aug 10 10:50:10 IST 2021 log4j2.xml
        

        方式 2:

        unzip -l my.jar | grep -i log4
        
            23590  08-10-2021 10:51   log4j-slf4j-impl-2.13.3.jar
            32722  08-10-2021 10:51   log4j-web-2.13.3.jar
          1714164  08-10-2021 10:51   log4j-core-2.13.3.jar
            23702  08-10-2021 10:51   log4j-over-slf4j-1.7.30.jar
           292301  08-10-2021 10:51   log4j-api-2.13.3.jar
            11259  08-10-2021 10:50   log4j2.xml
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-26
          • 2012-03-11
          • 2022-10-21
          • 1970-01-01
          • 2014-08-09
          • 1970-01-01
          • 2018-08-04
          • 1970-01-01
          相关资源
          最近更新 更多