斯坦福大学的卡雷尔机器人抛出了NullPointerException

时间:2012-01-07 12:09:07

标签: java karel

我已经开始在stanford网站上学习编程方法(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(){
      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)

我按照here给出了一些说明,但随后输出了一个空白屏幕。

斯坦福的任务1可以找到here,斯坦福的机器人卡雷尔可以here

10 个答案:

答案 0 :(得分:5)

你好 bhuwansahni 虽然我之前已经写了一个答案,但现在我正在编写整个过程来在任何eclipse版本中运行Karel。

  1. 在Eclipse中创建一个新项目(File -----> New -----> Java Project)

  2. 在创建的项目中加载作业。

    步骤a: - 在所需的文件夹中提取作业1

    步骤b: - 导入作业(文件----->导入----->通用----->文件系统-----&gt ;浏览您的文件夹并完成导入。)

  3. 现在以不同的方式运行它(运行----->运行配置----->)

    步骤a: - 在Java Applet下创建新配置。

    步骤b: - 在Main下写主类 stanford.karel.Karel

    图片**步骤3的步骤b ] http://i.stack.imgur.com/0LpI3.jpg

    步骤c: - 在(x)下=程序参数中的参数写 code = CollectNewspaperKarel

    图片**步骤3的步骤b ] http://i.stack.imgur.com/alIss.jpg

    步骤d: - 应用运行

  4. 现在卡雷尔是最可爱的机器人。

    图片**步骤3 ]网址: - ( i.stack.imgur.com/d8SAa.jpg )将http://放在前面看看...在这里,我不能发布超过两个超链接。

答案 1 :(得分:4)

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中:

  1. 项目>>设置>> Java编译器:选择1.6
  2. 右键单击“运行”按钮>>运行配置>> JRE选项卡>> Alertnative JRE:选择/添加Java 6路径
  3. 然后我为每个项目实现一个main方法,如上所述。每次将StoneMasonKarel.class重命名为您的班级名称。

答案 2 :(得分:1)

您收到该错误是因为您没有使用斯坦福大学提供的Eclipse版本。有关更多详细信息,

编辑:已删除此链接,因为它已不再有效。

修改

由于上述链接不再起作用,我编写了以下步骤。由于我不再使用Karel,如果有人按照指南进行了修改,请评论编辑此答案。

<强>说明:

a。访问Stanford website并下载以下软件

  1. 来自斯坦福的Eclipse for Eclipse
  2. Java Jre软件
  3. b。安装软件。

    c。从“作业”选项卡下载Assignment1.zip。

    d。将分配安装到Eclipse中。

    现在,我们完成了设置指南。让我们讨论一下常见的问题:

    <强>问题:

    问题1:空白屏幕

    这意味着,您安装了最新版本的Sun Java JRE软件。 解决这个问题的方法是 I.卸载除斯坦福网站下载的JRE软件之外的所有JRE软件版本。

    或者,试试这个

    a。打开Eclipse软件。

    b。在“菜单”工具栏中,单击“窗口”,然后单击“首选项”

    ℃。请按照以下简单步骤操作:

    1. 在“首选项”窗口中,单击“Java”。
    2. 在Java下显示的下拉部分中,单击“已安装的JRE”。
    3. 我们从斯坦福大学网站下载的JRE是jre6更新2.所以选择它。只有jre6与stanford eclipse软件兼容。 因此,取消选中系统中安装的所有其他版本,并检查jre6框,如下图所示。
    4. 单击“确定”。 5.运行程序。现在您可以看到输出正常。
    5. 问题2:错误

      运行程序时,有时可能会发现此错误。

      *

      *Exception in thread "main" java.lang.NullPointerException
          at acm.program.Program.main(Program.java:917)
          at stanford.karel.Karel.main(Karel.java:202)*
      

      *

      这意味着您没有下载Stanford Eclipse软件,而是使用从Eclipse网站下载的最新版Eclipse。请遵循我上面提到的详细指南。一切都会好起来的。

答案 3 :(得分:1)

在撰写这篇文章时,我只想出了它,我写了一篇完整的博客文章来进一步解释。这是一个片段:

&#34;所以这就是事情。您必须从Ubuntu软件中心(USC)下载OpenJDK6。您可能已经在计算机上安装了它,但为了以防万一,您仍应检查USC。完成后,返回Eclipse并打开Windows,Preferences,它应该打开“Installed JRE”。&#34;

更多信息:http://bakaripace.wordpress.com/2014/06/21/how-to-set-up-stanfords-karel-in-ubuntu-14-04-lts/

答案 4 :(得分:0)

很多时候,这可能是因为没有改变构建设置之类的东西。在eclipse中检查配置设置。

答案 5 :(得分:0)

一定要使用JRE6而不是JRE7。

为此,您无需卸载JRE7并安装JR6。只需安装JRE6即可。在Eclipse中,转到Window - &gt;偏好 - &gt; Java - &gt;已安装的JRE。将路径添加到JRE6。在“运行配置”中,选择“将备用JRE替换为jre6。”

答案 6 :(得分:0)

也许仅适用于Juno Eclipse,但我还必须在“运行配置...”对话框的“主要”选项卡中选中“在搜索主类时包含继承的主电源”复选框。

答案 7 :(得分:0)

只需安装JRE6即可。它没有做任何事情对我有用。只是intal JRE6并用它编译。在项目&gt; properties&gt;编译器

中更改编译器类型

答案 8 :(得分:0)

答案 9 :(得分:0)

我有同样的问题,我在Ubuntu上运行Eclipse Neon,而不是Stanford Eclipse。我错误地设置了Argument选项卡。确保正确设置运行配置。