You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java继承代码中已定义main方法却报‘Main method not found in class’错误求助

Java继承代码中已定义main方法却报‘Main method not found in class’错误求助

嗨,我看了你的问题和代码,发现几个大概率导致这个错误的点,咱们一步步来排查:

首先,包名不匹配是最显眼的问题!你代码里的包声明是package code.now;,但错误提示里却显示找不到code.ninja.Derived这个类——code.now和code.ninja完全是两个不同的包路径,这肯定有问题:

  • 要么是你代码里的包名写错了(比如本来想写code.ninja却误写成code.now);
  • 要么是你运行代码的时候,输入的类名是code.ninja.Derived,但实际编译后的类属于code.now包。

接下来,就算包名改对了,带包的Java代码也得严格遵循目录结构规则:
如果你的类属于code.now包,那你的Java文件必须放在code/now这个子目录下(比如项目根目录下建code文件夹,再在code里建now文件夹,把代码文件放进去)。

给你一套正确的编译运行步骤,确保不出错:

  • 把代码文件(建议命名为Derived.java,因为main方法在这个类里)放到./code/now/目录下;
  • 打开终端,切换到项目的根目录(也就是code文件夹的上级目录);
  • 编译代码:执行 javac code/now/Derived.java,这会在code/now目录下生成对应的.class文件;
  • 运行代码:执行 java code.now.Derived,注意这里用点分隔包名和类名,不是斜杠。

另外再确认下你的main方法签名——你代码里写的public static void main(String[] args)是完全正确的,大小写、参数类型都没问题,所以这个不是问题所在。

最后再排查一种小概率情况:有没有可能你编译的时候用了-d参数指定了输出目录,但运行的时候没把这个目录加到类路径里?如果是这种情况,运行时需要加上-cp参数指定类路径,比如java -cp ./out code.now.Derived(假设你把编译后的文件输出到了out目录)。

备注:内容来源于stack exchange,提问作者Goutham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:34:35