【问题标题】:Check if jar file is loaded?检查jar文件是否加载?
【发布时间】:2012-03-28 14:12:23
【问题描述】:

我在 tomcat lib/ 文件夹中有一个自定义 jar 文件。据我所知,此文件夹中的任何 jar 文件都会在启动时加载。

我是否可以检查是否加载了特定的 jar 文件?

我在 unix rhel5 上运行 tomcat-6.0.35.A。

【问题讨论】:

    标签: java unix jar tomcat6


    【解决方案1】:

    我想我已经在 Tomcat 日志文件之一中看到了启动时打开了哪些 jar。如果没有,我可以考虑两种可能的选择:

    1. 在 Tomcat 启动脚本中将-verbose:class 添加到JAVA_OPTS。它应该在 JVM 加载类时打印类(大量输出)。 Grep 日志文件(或 stdout)以查找是否列出了 jar 中的类
    2. 使用 Linux lsof 命令查看 Tomcat 进程打开的文件。

    【讨论】:

    • lsof 确实回答了我的问题。它帮助我查看罐子是否正在使用。谢谢。
    【解决方案2】:

    Jars 并不是真正“在启动时加载”。但是 Tomcat 的系统类加载器正在从这些 jar 中加载类。您可以检查 jar 中的某些类是否可用:

    • 通过尝试从您的代码中加载该类,例如getClass().getClassloader().loadClass(className)
    • 通过尝试将类作为资源加载, 例如getClass().getResource("/" + className.replace('.', '/') + ".class")

    在第二种情况下,getResource() 返回的 url 中应该有名称或 jar 文件。

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 1970-01-01
      • 2012-10-11
      • 2013-12-07
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2014-05-10
      相关资源
      最近更新 更多