首页 > 解决方案 > Java File 使用 java FileName.java 命令运行,但不使用 javac Filename.java 编译

问题描述

文件名: B.java

public class B
{
    public static void main(String[] args){}
}
public class A{}

我知道一个java文件不能有一个以上的公共类,但是java当你得到代码的编译错误时,为什么java文件可以使用命令运行而没有错误javac

标签: java

解决方案


Java-11+ 允许在不编译的情况下启动单文件源代码程序。您可以从这篇文章中了解更多信息。根据规范,如果文件中的第一个类有main,它会执行相同的操作而不关心public文件中的其他类。因此,如果您更改文件中类的顺序并尝试java B.java,它将失败。


推荐阅读