Eclipse无法确定主类

时间:2015-07-25 16:53:19

标签: java acm-java-libraries

到目前为止我的代码是:

package graphics;

import acm.graphics.*;
import acm.program.*;

public class project1 {
    public class graphics extends GraphicsProgram {
        private static final long serialVersionUID = 1L;
        public void run() {
            add( new GLabel( "hello, world", 100, 75));
        }
    }
}

我收到错误:

  

线程中的异常" main" acm.util.ErrorException:无法确定   主要课程。在acm.program.Program.main(Program.java:1358)

我已经通过在线参考获得了这一点,除了我在运行配置中对自己的帐户进行的两项修改,将acm.program.Program设置为Main选项卡中的主要类,并设置{{1}作为程序参数,不确定这是否相关。

2 个答案:

答案 0 :(得分:5)

您需要删除外部类project1。请参阅此处的文档图2-3:

http://cs.stanford.edu/people/eroberts/jtf/tutorial/UsingTheGraphicsPackage.html

package graphics;

import acm.graphics.*;
import acm.program.*;

public class graphics extends GraphicsProgram {
        private static final long serialVersionUID = 1L;
        public void run() {
            add( new GLabel( "hello, world", 100, 75));
        }
}

另外,你真的应该给你的班级一个大写的第一个字母。

正如@BilltheLizard指出的那样,您还需要确保您的java文件的名称与您的类的名称相匹配。因此,如果您的类被称为Graphics,则您的java文件应该被称为Graphics.java

答案 1 :(得分:-1)

您收到错误是因为您没有main方法,并且如果您要运行的程序没有main方法,JVM将无法运行该程序。为了运行和编译该程序,您需要有一个主要方法供JVM理解以编译该类。

以下是正确的方法:如果您没有使用外部类,则可以将其删除。

import acm.graphics.*;
import acm.program.*;

public class Graphics extends GraphicsProgram {

    private static final long serialVersionUID = 1L;
    public void run() {
        add( new GLabel( "hello, world", 100, 75));
    }

    public static void main(String[] args) {
        Graphics g = new Graphics();
        g.run();
    }
}