【问题标题】:How to know where the class is coming from in Java如何知道类在 Java 中的来源
【发布时间】:2019-06-24 21:58:48
【问题描述】:

我今天遇到了一个非常令人困惑的问题,我的电子邮件服务,我正在使用 simple-java-mail,突然停止发送......并且引发了异常:

Exception in thread "pool-3-thread-1" java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.(Ljava/io/InputStream;Lcom/sun/mail/util/MailLogger;)V

由于没有添加任何影响电子邮件的内容,我快疯了,我尝试使用 maven enforcer 插件来发现发生了什么,但没有任何线索。

问题是我如何才能发现运行时的类来自哪个 jar 或库?

【问题讨论】:

    标签: java maven jakarta-ee


    【解决方案1】:

    通过这个 sn-p 你可以知道这个类是从哪里来的,从而立即找到一个类的来源:

        Class klass = Class.forName("javax.mail.Service");
        URL location = klass.getResource('/' + klass.getName().replace('.', '/') + ".class");
    
        System.out.println(location);
    

    现在您可以知道 javax.mail.Service 驻留在哪个 JAR 中。

    【讨论】:

      猜你喜欢
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多