Java接口程序运行报错:在线编译器提示无法找到或加载主类interface
报错产生原因
- 源文件命名违规:大概率是你将Java源文件命名为了
interface.java,interface是Java的保留关键字,不能用作文件名、类名,Java运行时会优先匹配和文件名一致的类作为入口,关键字本身无法作为合法类名,就会触发找不到主类的报错。 - 入口类访问权限不符合要求:部分在线编译器要求包含main方法的主类必须是public修饰,你提供的代码中Test类为默认访问权限,部分严格的运行环境无法识别到该入口类。
- 编译器默认执行规则冲突:少数在线编译器会默认将代码中第一个定义的类作为主类执行,你代码中第一个定义的是I1接口,本身不存在main方法,也会触发入口找不到的提示。
排查修复步骤
- 调整源文件命名:将文件名修改为
Test.java,确保文件名和包含main方法的类名完全一致,不要使用任何Java保留关键字作为文件名或自定义类名、接口名。 - 调整入口类修饰符:将Test类修改为public修饰,修改后的完整代码如下:
interface I1{ void show(); } public class Test implements I1{ public void show(){ System.out.println("Hi"); } public static void main(String[] args){ Test t = new Test(); t.show(); } }
- 手动指定执行入口:如果所用的在线编译器支持自定义主类配置,手动选择Test类作为程序执行入口后重新运行即可。
内容的提问来源于stack exchange,提问作者him.himanshu
相关产品推荐
相关产品推荐

