在eclipse中,我有两个不同的项目:ProjectX,generic和projectA specific。
在projectX中:
public static final Plugin getPlugin(String sIdentifier ) {
String sPluginClassName = "packageName.blabla.ClassName";
try {
pluginClass = Class.forName(sClassName);
...
} catch (ClassNotFoundException e) {
throw new BusinessException(sIdentifier, e);
}
}
projectA中的:
package packageName.blabla;
public class ClassName () {
....
}
在执行期间,由于ClassNotFoundException,我得到了一个BusinessException。类路径正常(复制/粘贴未写入)。在eclipse项目中,java构建路径/库包含projectX文件夹,projectX构建路径没有任何对projectA的引用(看似合法)。
这在与ProjectX的projectB特定交互中工作正常(我不知道在哪里 差异:我已经检查了两个构建路径,它以相同的方式完成。)
有什么想法吗?
答案 0 :(得分:4)
projectX构建路径没有对projectA的任何引用(似乎是合法的)。
虽然projectA上不需要projectX的构建时依赖项,但projectA的“bin”目录需要位于projectX的执行类路径中。如果不是,那么Class.forName
中对getPlugin
的调用将不会查看“projectA / bin”目录,也不会找到它正在尝试加载的类。
可以通过“运行>运行配置”窗口配置执行类路径。