尝试编写一个程序来为我计算我的GPA,当我尝试运行原型时,我不断收到以下消息:
java.lang.NoSuchMethodError: main
Exception in thread "main"
代码如下:
包装橙色;
import java.util.Scanner;
public class plums{
String philosophy, econ, french, fye, marine, stats;
public void main(String args[]){
Scanner gpa = new Scanner(System.in);
System.out.println("Philosophy Grade: ");
philosophy = gpa.nextLine();
System.out.println("Econ grade: ");
econ = gpa.nextLine();
System.out.println("French Grade: ");
french = gpa.nextLine();
System.out.println("FYE Grade: ");
fye = gpa.nextLine();
System.out.println("Marine grade: ");
marine = gpa.nextLine();
System.out.println("STATs Grade: ");
stats = gpa.nextLine();
}
public void main(double[] args) {
gpa philGrade = new gpa(4);
if (philosophy.equals("a") )
gpa.philGrade = 4;
else if (philosophy.equals("a-"))
gpa.philGrade = 3.7;
else if (philosophy.equals("b+"))
gpa.philGrade = 3.3;
else if (philosophy.equals("b"))
gpa.philGrade = 3;
else if (philosophy.equals("b-"))
gpa.philGrade = 2.7;
else if (philosophy.equals("c+"))
gpa.philGrade = 2.3;
else if (philosophy.equals("c"))
gpa.philGrade = 2;
else if (philosophy.equals("c-"))
gpa.philGrade = 1.7;
else if (philosophy.equals("d+"))
gpa.philGrade = 1.3;
else if (philosophy.equals("d"))
gpa.philGrade = 1;
else if (philosophy.equals("d-"))
gpa.philGrade = .7;
else if (philosophy.equals("f"))
gpa.philGrade = 0;
else
System.out.println("y u do dis??");
这是针对一个类的,这是另一个类:
package orange;
public class gpa {
public static double philGrade;
public gpa(double grade1){
philGrade=grade1;
}
public void lines(){
System.out.println(gpa.philGrade);
}
}
您的main
方法必须声明为公共静态方法。
主要方法声明:
public static void main (String [] args)
main
方法被声明为公共的,因为它从外部调用,即由JVM调用。并且它被声明为静态的,因为它在类的对象实例化之前被调用(它是代码执行的第一个点)。
public static void main(String args[]){
...
}
你错过了static
使 main 方法静态,如下所示。
public static void main(String args[]){
public static void main(String[] args)
是任何Java程序的入口点。当您执行 java 文件时,JVM 会查找此方法以开始执行。在您的情况下,它无法找到它,因此会引发java.lang.NoSuchMethodError: main
错误。
溶液:
在您的方法中添加了static
修饰符:public void main(String args[])