You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手遇“缺少main方法”错误,请求代码修正以正常运行

解决Java程序“缺少main方法”的问题

嗨,我来帮你搞定这个报错~你的代码里有两个关键问题导致了“缺少main方法”的提示,我会一步步帮你修正:

问题分析

  1. main方法的签名错误:Java程序的入口方法必须是public static void main(String[] args),你的代码里的public void main(String[] args)少了static修饰符——JVM需要直接调用这个方法,不需要先创建类的实例,所以static是必须的。
  2. main方法的位置不对:你把main方法放在了非静态内部类Time里,非静态内部类依赖于外部类的实例,JVM找不到符合要求的入口方法。

修正方案

我会调整代码结构,把main方法移到外部类中,同时把内部类改为静态内部类(这样可以在静态方法中直接实例化),完整修正后的代码如下:

package Java2;
import java.util.Date;

public class tenpoint01 {
    // 将Time改为静态内部类,这样能在静态main方法中直接使用
    public static class Time {
        private int hour;
        private int minute;
        private int second;

        public Time() {
            this(System.currentTimeMillis());
        }

        public Time(long elapsed) {
            Date date = new Date(elapsed);
            this.hour = date.getHours();
            this.minute = date.getMinutes();
            this.second = date.getSeconds();
        }

        public Time(int hour, int minute, int second) {
            this.hour = hour;
            this.minute = minute;
            this.second = second;
        }

        private void setTime(long elapsedTime) {
            Date date = new Date(elapsedTime);
            this.hour = date.getHours();
            this.minute = date.getMinutes();
            this.second = date.getSeconds();
        }

        public int getHour() {
            return hour;
        }

        public int getMinute() {
            return minute;
        }

        public int getSecond() {
            return second;
        }

        @Override
        public String toString() {
            return hour + ":" + minute + ":" + second;
        }
    }

    // 标准的程序入口main方法:public static void修饰,放在外部类中
    public static void main(String[] args) {
        Time time = new Time();
        Time time2 = new Time(555550000);
        System.out.println(time);
        System.out.println(time2);
    }
}

关键修改点说明

  • 给Time类添加static修饰符,使其成为静态内部类,这样不需要依赖外部类tenpoint01的实例就能创建对象。
  • 将main方法移到外部类tenpoint01中,并修正为public static void main(String[] args),这是JVM能识别的标准入口方法。

现在运行这段代码,就能正常输出当前时间和对应时间戳的时间啦~

内容的提问来源于stack exchange,提问作者Rob Steiner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:45:02