我试图在终端上运行以下脚本-source of code here-
import acm.program.*;
public class Add2 extends Program {
public void run() {
println("This program adds two numbers.");
int n1 = readInt("Enter n1: ");
int n2 = readInt("Enter n2: ");
int total = n1 + n2;
println("The total is " + total + ".");
}
}
然后我在终端上使用以下两个步骤编译并运行代码:
javac -classpath acm.jar Add2.java
java Add2
该编译没有指示错误,但是当我尝试运行脚本时,出现以下错误:
Error: Could not find or load main class Add2
。
我在使用Java方面还很陌生,所以任何有关如何进行此工作的建议将不胜感激!
答案 0 :(得分:1)
Java虚拟机(JVM)仅可以使用main
方法执行代码。没有main
方法就无法执行代码,但是仍然可以编译(如您所注意到的),因此必须使用main
方法,否则您将遇到java.lang.ClassNotFoundException
。>
只需将其添加到您的代码中(不需要注释):
public static void main(String[] args) {
// This class is mandatory to be executed by the JVM.
// You don't need to do anything in here, since you're subclassing ConsoleProgram,
// which invokes the run() method.
}
顺便说一句,由于您要覆盖Program#run()
,因此需要添加@Override
作为注释。另外,因为您仅使用控制台,所以将ConsoleProgram
子类化就足够了。