螺纹“中的异常;主&x201D;java.lang.NoSuchMethodError:main//怎么了?

螺纹“中的异常;主&x201D;java.lang.NoSuchMethodError:main//怎么了?,java,linux,terminal,javac,nosuchmethoderror,Java,Linux,Terminal,Javac,Nosuchmethoderror,我有以下简单的代码: public class Date { byte day; byte month; short year; } class DateUse{ public static void main(String[] args){ Date date = new Date(); date.day = 15; System.out.println(date.day); } } 我正在使用Linux终端编译我的.java代码: javac Date.ja

我有以下简单的代码:

public class Date
{
 byte day;
 byte month;
 short year;
}
 class DateUse{
  public static void main(String[] args){
   Date date = new Date();
   date.day = 15;
  System.out.println(date.day);
  }
}
我正在使用Linux终端编译我的.java代码:

javac Date.java
在Windows环境下,任何IDE都可以编译而没有任何错误,为什么它会在Linux中给我错误


提前感谢您。

日期使用
设置为公共类,并在
日期
类之前设置

将文件另存为
DateUse.java
,并使用

javac DateUse.java

DateUse
类包含main方法,而不是
Date

您的main方法需要在Date类中,因为您的文件名代表类名。您的代码应如下所示:

public class Date{
     public byte day;
     public byte month;
     public short year;

     public static void main(String[] args){

       Date date = new Date();
       date.day = 15;
       System.out.println(date.day); 
     }

}

听起来好像您试图运行
Date
而不是
DateUse

$ javac Date.java

$ java Date
Exception in thread "main" java.lang.NoSuchMethodError: main

$ java DateUse
15

您是否已将“Date”声明为主类?标题中的异常不是编译错误。您在Linux上使用的是什么版本的Java,在Windows上使用的是什么版本的Java?Linux中的Java版本是-1.6.0,不过您可以随时合并这两个类。没问题。如果你认为它是有用的,就把它标记为一个答案。实际上,我是在调用错误的类日期,我应该调用DATEAUE。