从终端使用acm.program包运行Java脚本

时间:2019-04-18 12:23:23

标签: java terminal acm-java-libraries

我试图在终端上运行以下脚本-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方面还很陌生,所以任何有关如何进行此工作的建议将不胜感激!

1 个答案:

答案 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子类化就足够了。