在Eclipse中调试一个相对较小的程序时,我正在逐步看到“Source not found”错误。其他问题表明这通常是导入/ jar问题。在这种情况下,我没有导入的jar文件,没有什么花哨的,只是src / default包中的类。
具体行为如下:
如果调试器指向一个实例化新对象的行(例如,“Foo foo = new Foo();”),其中所讨论的类Foo位于同一源目录中并具有有效的构造函数,发生以下两件事之一:
1)要么:按F5将我带入类并进入构造函数签名;随后的F5将带我进入可怕的“未找到来源”错误;
2)或者:点击F5会立即将我带到“未找到来源”错误
在任何一种情况下,我都可以继续调试....例如,调试会话继续并且前进导致通过该程序的进一步步骤。 (如果我在没有调试器的情况下运行该程序,或者如果这些位置没有断点,我认为没有问题。点击F8并转到下一个断点通常可以解决我的问题。)
正确设置了Java Build Path源代码(项目的src子目录,这是默认包所在的位置。)Java Build Path库只有JRE系统库,据我所知,有没有姓名冲突。我想不出我需要对Java Build Path做的任何其他事情。
这可能与我正在使用调试器(数字应用程序中的NaN扩散)的错误无关,但它会分散注意力,并且它妨碍了我找到问题根源的能力。
具体问题:导致此行为的原因是什么?或者是我之前没有注意到的预期行为?
编辑:包含代码
Loop2: for (int depth = 0; depth < maxDepth; depth++) {
for (int node = 0; node < policy.numMemory; node++) {
Belief belief = new Belief(messages, node);
nodeTraces[node] = new nodeTrace(policy, pomdp, messages, belief, depth);
if (nodeTraces[node].bestGain > bestGain) {bestTrace = node; bestGain = nodeTraces[node].bestGain; }
}
if (bestGain > 0.01) { System.out.println("breaking"); break Loop2; }
}
在Belief belief = new Belief(messages, node);
上方设置断点,然后点击F5将在调试器中产生Source Not Found消息。该类的代码段是:
public class Belief {
int numStates;
double[] belief;
public Belief(Messages messages, int node) {
// do some stuff
}
我再次强调在这个项目中的任何地方都没有包含的包。所有类都是我的,并且驻留在项目自己的源目录中,该目录包含在Java Build Path的源选项卡中。如果上面建议的链接解释了它在这里发生了什么,即使在阅读了三次之后我也没有看到它,如果有人用小言辞向我解释,我将不胜感激。
答案 0 :(得分:0)
Eclipse可能缺少标准库的来源,即JDK。
这可以通过首选项设置 - &gt; Java - &gt;已安装JRE。