Java NetBeans-Can';我找不到主课

Java NetBeans-Can';我找不到主课,java,class,object,Java,Class,Object,我刚在大学开始学习Java课程,我试图理解OOPs的概念,所以我写了这个程序: package Lamp; import java.util.*; public class Lamp { public Scanner input= new Scanner(System.in); boolean state; String color; public Lamp() { state = false;

我刚在大学开始学习
Java
课程,我试图理解
OOPs
的概念,所以我写了这个程序:

package Lamp;
import java.util.*;

    public class Lamp {
    public Scanner input= new Scanner(System.in);
        boolean state;
        String color;

        public Lamp() {
            state = false;
            color = "Blue";
        }

        public boolean toggleState() {
            if (state == false) {
                state = true;
            }
            if (state == true) {
                state = false;
            }
            System.out.println("State is now: " +state);
            return state;
        }

        public String chooseColor(){
            System.out.println("Please choose a new color");
            color= input.nextLine();
            System.out.println("Color is now: " +color);
            return color;
        }

        void main(){
        Lamp L1= new Lamp();
        System.out.println("State is now: " +state);
        System.out.println("Color is now: " +color);

        L1.toggleState();
        L1.chooseColor();

        System.out.println("State is now: " +state);
        System.out.println("Color is now: " +color);

        }
    }
问题是,每次我尝试运行该程序时,NetBeans都会说它找不到主类Lamp.Lamp 我使用的是
packagename.classname
的概念,但它一直在放同样的东西


提前谢谢

这可能是类似的问题吗

尝试清理并重新编译项目。有时,旧版本的程序卡在缓存中,而新版本无法运行

另外,尝试在程序末尾的main方法中添加公共声明
publicstaticvoidmain(String[]args)
,看看这是否有帮助

void main(){
应改为

public static void main(String[] args) {
public
使其可见

static
可以在不首先构造对象的情况下调用方法


@bradimus

右键单击您的项目->单击属性->单击运行->浏览->添加您的主类中介绍了为什么需要这样做

你也应该使用:

public static void main(String[] args) {
作为主要方法的起点

希望这有帮助:-)

首先,您的main()是错误的,它应该是
publicstaticvoidmain(stringargs[])
然后,您需要将变量清除为静态
静态布尔状态
静态字符串颜色

检查您的代码

package Lamp;
import java.util.*;

    public class Lamp {
    public Scanner input= new Scanner(System.in);
        static boolean state;
        static String color;

        public Lamp() {
            state = false;
            color = "Blue";
        }

        public boolean toggleState() {
            if (state == false) {
                state = true;
            }
            if (state == true) {
                state = false;
            }
            System.out.println("State is now: " +state);
            return state;
        }

        public String chooseColor(){
            System.out.println("Please choose a new color");
            color= input.nextLine();
            System.out.println("Color is now: " +color);
            return color;
        }

       public static void main(String args[]){
            Lamp L1= new Lamp();
            System.out.println("State is now: " +state);
            System.out.println("Color is now: " +color);

            L1.toggleState();
            L1.chooseColor();

            System.out.println("State is now: " +state);
            System.out.println("Color is now: " +color);

        }
    }

您的
main
签名错误。它应该是
publicstaticvoidmain(String[]args)
。看不见<代码>公共静态void main()
不正确。请尝试
publicstaticvoidmain(String[]args)
谢谢!就在我发布答案后,我在帖子上看到了你的评论。还添加了答案的链接<代码>另外,尝试添加一个公共声明…
,实际上这应该是您答案的第一行;)这将有助于解决主要问题的主要方法是湖,而不是启动应用程序的方式。在特定的java文件上运行会起作用。