Java终端编译运行报错:无法找到主类问题求助
解决Java终端编译运行时“无法找到主类”的问题
问题原因分析
你的代码和操作存在三个关键问题:
- 类名不符合Java规范:主类
bankmanagement首字母未大写,Java约定类名采用大驼峰命名法,虽语法允许小写,但可能导致JVM无法正确识别主类 - 包声明未正确处理:代码顶部有
package tut6;声明,但编译运行时未按包结构对应处理 - 运行命令路径错误:直接在当前目录运行主类,未匹配包结构层级
分步解决步骤
1. 修正主类名
将主类名从bankmanagement改为Bankmanagement(首字母大写),修改后的完整代码如下:
package tut6; abstract class Bank{ public abstract void getbalance(); } class BankA extends Bank{ public void getbalance(){ System.out.println("$100"); } } class BankB extends Bank{ public void getbalance(){ System.out.println("$150"); } } class BankC extends Bank{ public void getbalance(){ System.out.println("$200"); } } public class Bankmanagement{ public static void main(String[] args) { BankA a = new BankA(); a.getbalance(); BankB b = new BankB(); b.getbalance(); BankC c = new BankC(); c.getbalance(); } }
2. 正确编译代码
假设你的Java文件名已改为Bankmanagement.java(需和主类名完全一致),在终端执行编译命令时,指定输出目录生成对应包结构:
javac -d . Bankmanagement.java
执行后当前目录会生成tut6文件夹,内部包含所有编译后的.class文件。
3. 正确运行程序
在当前目录(即tut6文件夹的上层目录)执行运行命令,使用完整的包名+类名:
java tut6.Bankmanagement
预期运行结果
执行上述步骤后,终端会输出:
$100 $150 $200
内容的提问来源于stack exchange,提问作者Abhay Shankhapal
相关产品推荐
相关产品推荐

