运行 java 脚本利用来自终端的 acm.program 包
Run java script utilizing acm.program package from terminal
我正在尝试 运行 以下脚本 - 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 方面相当陌生,因此非常感谢任何有关如何完成这项工作的建议!
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
as annotation. Also, as you're only using the console, subclassing ConsoleProgram
就足够了。
我正在尝试 运行 以下脚本 - 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 方面相当陌生,因此非常感谢任何有关如何完成这项工作的建议!
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
as annotation. Also, as you're only using the console, subclassing ConsoleProgram
就足够了。