Java 斯坦福大学';s Karel机器人抛出NullPointerException
我已经开始学习斯坦福网站上提供的课程编程方法(CS106A)。 但我不能在里面开始斯坦福卡雷尔 我正在使用eclipse indigo classic 3.7.1和Windows 7 64位操作系统 我编写了以下代码:Java 斯坦福大学';s Karel机器人抛出NullPointerException,java,karel,Java,Karel,我已经开始学习斯坦福网站上提供的课程编程方法(CS106A)。 但我不能在里面开始斯坦福卡雷尔 我正在使用eclipse indigo classic 3.7.1和Windows 7 64位操作系统 我编写了以下代码: import stanford.karel.*; public class CollectNewspaperKarel extends SuperKarel { // You fill in this part public void run(){
import stanford.karel.*;
public class CollectNewspaperKarel extends SuperKarel {
// You fill in this part
public void run(){
move();
move();
}
}
它给出了错误
Exception in thread "main" java.lang.NullPointerException
at acm.program.Program.main(Program.java:917)
at stanford.karel.Karel.main(Karel.java:202)
我按照给出的一些说明进行操作,但得到了一个空白屏幕作为输出
可以找到斯坦福大学的任务1,斯坦福大学的机器人卡雷尔可以使用很多时候,这可能是由于没有更改构建设置之类的事情。检查eclipse中的配置设置。由于您未使用斯坦福大学提供的eclipse版本,因此出现了该错误。有关更详细的信息 编辑:已删除此链接,因为它不再工作 编辑: 由于上面的链接不再有效,我编写了以下步骤。由于我不再使用Karel,如果有人按照指南进行了修改,请评论编辑此答案 说明: a、 访问并下载以下软件
这意味着您没有下载斯坦福Eclipse软件,您使用的是从Eclipse网站下载的最新版本的Eclipse。因此,请遵循我上面提到的详细指南。一切都会很好。你好Bhuwanshani虽然我以前写过一个答案,但现在我正在编写在任何eclipse版本中运行Karel的整个过程
确保使用JRE6而不是JRE7
要做到这一点,您不需要卸载JRE7和安装JR6。只需安装JRE6。在Eclipse中,转到窗口-->首选项-->Java-->安装的JRE。将路径添加到JRE6。在Run configuration中,选择Alternate JRE to jre6。可能仅适用于Juno Eclipse,但我还必须选中Run configuration主选项卡中的“搜索主类时包含继承的主类”复选框。。。对话
public class StoneMasonKarel extends SuperKarel {
public static void main(String[] args) {
stanford.karel.Karel.main(new String[] { "code="
+ StoneMasonKarel.class.getCanonicalName() });
}
public void run() {
}
}
你需要Java6
在Eclipse中:
然后我为每个项目实现一个主方法,如上面的一个。对于每个重命名
StoneMasonKarel.class
,不管您的类名是什么。只需安装JRE6即可。这对我来说很管用,什么也没做。只需安装JRE6并使用它进行编译。在project>properties>compiler中更改编译器类型在写这篇文章时,我刚刚弄明白了这一点,并写了一篇完整的博客文章来进一步解释它。下面是一个片段:
“事情是这样的。你必须从Ubuntu软件中心(USC)下载OpenJDK6。你的计算机上可能已经有了它,但你还是应该查看USC以防万一。一旦有了它,回到Eclipse并打开Windows,Preferences,它应该直接打开到”Installed JRE“。”
更多信息请访问:
在这个网站上下载jre 6 for OSx:)我也有同样的问题,我在Ubuntu上运行Eclipse Neon,而不是斯坦福Eclipse。我错误地设置了论点的标签。确保正确设置跑步配置。请不要使用太多粗体。。。这很难读。另外,不要使用签名
public class StoneMasonKarel extends SuperKarel {
public static void main(String[] args) {
stanford.karel.Karel.main(new String[] { "code="
+ StoneMasonKarel.class.getCanonicalName() });
}
public void run() {
}
}