【问题标题】:Dynamically load class from maven dependency从 Maven 依赖项动态加载类
【发布时间】:2011-10-14 11:22:21
【问题描述】:

我有 maven 依赖项,范围设置为运行时,我尝试使用 Class.forName("com.example.something.full.path") 从另一个模块加载一个类,我看到 ClassNotFoundException。我的模块 B 依赖于模块 A。我正在尝试从 B 中的 A 加载一个类。我尝试执行 Class.forName 的类是使用 Spring 初始化的。我可以看到jar(模块A)在B的类路径中,这还不够吗?

添加更多细节:

我正在尝试使用 Eclipse 对其进行测试。 最后,它必须作为 webapp 或任何独立 java 进程的一部分工作。

编辑:

抱歉,我对问题的描述不清楚。我试图动态加载内部类。当我执行 Class.forName("com.example.myclass$innerclass") 时,它起作用了。

【问题讨论】:

  • 我们需要比这更多的细节来帮助您。您是否尝试在 IDE 中运行此测试?如果有,是哪一个?
  • “来自另一个模块”?您的意思是与定义依赖项的模块不同?这不会太成功。
  • @RyanStewart 我的模块 B 依赖于模块 A。我正在尝试从 B 中的 A 加载一个类。

标签: java maven classloader


【解决方案1】:

检查 maven 配置的最佳方法是使用 maven 运行主类:

mvn compile exec:java -D exec.mainClass=<your main class>

这将真实地告诉您您的依赖是否存在问题。如果你得到一个这样的 CNFE,那么几乎可以肯定没有你在依赖的 jar 中指定的名称的类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-18
    • 2013-03-11
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多