【问题标题】:When Trying to Run Code, I get a "Does Not Have Main Method Error"尝试运行代码时,我收到“没有主方法错误”
【发布时间】:2019-02-21 18:34:04
【问题描述】:

我对 Java 很陌生,在我的课程中学到的东西不多。每次我尝试运行我的代码时,都会被告知我没有 main 方法。然而,我认为 公共无效主要(字符串[]参数){ 声明 main 方法,它位于我的代码的底部。任何人都可以帮助修改代码以使其运行吗?

package Java2;
import java.util.Date;

public class tenpoint01 {

public 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;
}
/**
* @param args the command line arguments
*/
public void main(String[] args) {
    Time time = new Time();
    Time time2 = new Time(555550000);
    System.out.println(time);
    System.out.println(time2);
}
}
}

【问题讨论】:

  • 你的主要方法应该是static
  • 你的 main 在内部类 Time 中,你可能想把它放在外部类中。

标签: java


【解决方案1】:

改变

public void main(String[] args) {

public static void main(String[] args) {

导致

package java2;

import java.util.Date;

public class tenpoint01 {

    public 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;
        }

        /**
         * @param args the command line arguments
         */
        public void main(String[] args) {
            Time time = new Time();
            Time time2 = new Time(555550000);
            System.out.println(time);
            System.out.println(time2);
        }
    }
}

运行上述结果

16
4
4
4
4
0

正在打印

应该这样做

【讨论】:

  • 再次,当添加静态时,我收到一条错误消息,指出“内部类 tenpoint01 中的静态声明非法。时间修饰符 'static' 仅允许在常量变量声明中使用。”看到回复的每个人都告诉我在 public 和 void 之间添加静态,我不确定为什么它不起作用
【解决方案2】:

main方法的签名不正确你缺少static关键字,main方法应该是:

public static void main(String[] args) {
       ^^^^^^
    // your code here
}

因为您使用的是Netbeans(现在很智能),您只需输入public 并按Ctrl + Enter 即可看到main 方法。或者只需输入psvm,然后输入tab,更多详情请点击此处:

【讨论】:

  • 添加静态时,我收到一条错误消息,指出“内部类 tenpoint01 中的静态声明非法。时间修饰符 'static' 仅允许在常量变量声明中”
【解决方案3】:

您应该在主方法中添加“静态”关键字

要执行你目前拥有的,应该是:

public static void main(String[] args) {
 Time time = new Time();
 Time time2 = new Time(555550000);
 System.out.println(time);
 System.out.println(time2);

}

【讨论】:

  • 添加静态时,我收到一条错误消息,指出“内部类 tenpoint01 中的静态声明非法。时间修饰符 'static' 仅允许在常量变量声明中”
猜你喜欢
  • 2021-07-04
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
相关资源
最近更新 更多