【问题标题】:How to debug ClassNotFoundException on client environment如何在客户端环境中调试 ClassNotFoundException
【发布时间】:2016-01-18 19:21:20
【问题描述】:

我们的一位客户面临一个问题:
有时,当他运行我们的 java 应用程序时,它会抛出 ClassNotFoundException。包含“缺失”类的 jar 正确放置在类路径下,并且他的环境问题不一致(取决于我们调用应用程序的方式 - 命令行或快捷方式,以及其他环境因素)。

我们想给他一个调试版本,打印正在寻找丢失类的路径和 URL,以便我们了解为什么找不到它,并解决问题。

我们尝试了-verbose:class,但它只打印成功加载的类及其实际路径。有没有办法打印正在搜索每个(或者最好是只丢失)类的路径?

【问题讨论】:

  • 检查系统环境变量它可能会添加两次相同的类。
  • @HithamS.AlQadheeb - 你能解释一下如何将一个类加载两次吗?
  • 它可能不会导致 classnotfoundexception。您能否发布有关环境变量以及如何设置类路径的更多详细信息。
  • 类路径嵌入到 install4j 生成的 exe 中。我怀疑问题在于他们的环境中的一些错误配置的驱动器映射,根据应用程序的启动方式,这些驱动器映射得到了错误的解决。

标签: java debugging classpath


【解决方案1】:

根据异常,毫无疑问,类路径有问题导致 JVM 找不到所需的类。

现在,您说缺少的类位于 jar 中,但找不到。请尝试以下这些解决方案。

尝试访问其他类,这些类与丢失的类位于同一特定包中或此 jar 中的任何包中。如果全部成功,则可能是在源文件中针对丢失的类错误地指示包名错误。

另外,如果你擅长使用 -classpath 选项,你可以在控制台中使用 javac 命令调试这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2022-11-20
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多