0

我在调试配置中指定的顶级调试类是MyDebugClass. 再往下main看,它会尝试启动与在同一个包中的类ProblemClass的实例,但它在构造函数调用行上出错,说“找不到源”。项目编译良好,.class 文件确实在目标目录中,与 .class 的位置相同。MyDebugClassMyDebugClass

我认为类路径可能有些奇怪,因此不包含调试主程序的同一个包,所以我在同一个目录中创建了一个测试类并尝试调用它的一个实例并且它有效。所以这不是问题。

我还添加了以下代码MyDebugClass.main来尝试调试问题:

ClassLoader loader = ProblemClass.class.getClassLoader();
Class probCls = loader.loadClass("mypackage.ProblemClass");
//here below is where it errors out
probCls.newInstance();

什么可能导致这种类加载问题?类路径中有一大堆 jar,那么其中一个是否包含相同的类限定符,并且类加载器试图从那里获取它,而不是调试构建路径中指定的目标目录?我如何找到类加载器尝试加载类的位置,例如寻找.class 文件或某个jar 的文件系统路径?

4

1 回答 1

0

Look at the file in the Eclipse "Package Explorer" view. That may give you some help. Also, you say that the .class file is in the target directory, but what about the source .java file?

Other things to check are the Java Build Path of your project properties.

I hope this helps, though you didn't really give enough detail to be able to understand what's really going on.

于 2013-09-09T20:04:17.277 回答