如何在Linux终端的Java程序中引入自定义类文件?
问题解决:运行Main.java提示找不到Car类
核心问题
用java Main.java单文件运行时,JVM对依赖类的加载逻辑和预先编译的字节码存在冲突;另外代码里还有方法调用名称不匹配的问题,会导致后续运行报错。
解决步骤
方法一:同时编译并运行所有源文件
直接执行以下命令,JVM会自动编译并运行两个关联的源文件,无需单独编译Car.java:
java Main.java Car.java
方法二:先编译所有类,再运行
- 编译目录下所有
.java文件:
javac Main.java Car.java
- 编译完成后,运行Main类:
java Main
必须修正的代码错误
Main类中调用的方法和Car类定义的方法名称不匹配,需修改如下:
- 将
car1.drive()改为car1.driveCar() - 将
car2.horn()改为car2.hornCar() - 将
car2.light()改为car2.lightCar()
修正后的Main.java代码:
public class Main { public static void main(String[] args) { Car car1 = new Car("Chevrolet", "Monte Carlo SS", "Red", 2001, 5000.00F); Car car2 = new Car("Ford", "F150", "Black", 2018, 15000.00F); System.out.printf("Make of car1: %s\n", car1.make); System.out.printf("Model of car1: %s\n", car1.model); car1.driveCar(); System.out.printf("Make of car2: %s\n", car2.make); System.out.printf("Price of car2: $%.2f\n", car2.price); car2.hornCar(); car2.lightCar(); } }
内容的提问来源于stack exchange,提问作者HornedAccomplice
相关产品推荐
相关产品推荐

