耳中项目中的Class.forName()

时间:2014-03-13 12:09:19

标签: java classnotfoundexception

假设有一个EAR ApplicationEARProject1Project2中有两个项目。 情况是......

  1. Project1依赖于Project2
  2. Project2使用Class.forName()
  3. 调用Project1中的类

    我现在面临的问题是,它在Project2调用的运行时显示ClassNotFoundException。

    我可以保证Project1中的类存在,语法/拼写完全正确。

    任何理由/解决方案都会有很大帮助。

    我是否必须将Project1添加到Project2的家属中?这将导致循环依赖问题。

    编辑Project1Project2都是JAR项目,Project3是WAR项目

2 个答案:

答案 0 :(得分:0)

你确实有循环依赖..

解决方案通常是将类加载器发送到project2,它用于从...中检索类。

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#forName%28java.lang.String,%20boolean,%20java.lang.ClassLoader%29

答案 1 :(得分:0)

“内部有两个项目”是什么意思?

如果您的应用程序服务器使用严格的类加载,则每个WAR都有自己的类加载器。因此,如果每个“项目”都是WAR,则他们无法看到其他WAR的类。

您必须将相关代码移动到EAR的lib文件夹中的jar中。