【发布时间】:2020-11-28 14:27:47
【问题描述】:
我有 java 文件HelloWorld.java,代码如下:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
现在我的理解是,要编译和运行它,我们需要两个步骤:步骤 1)javac HelloWorld.java 步骤 2)java HelloWorld。很明显,命令 java 将类文件名作为其输入参数。
但是,如果我执行java HelloWorld.java,它会打印程序的输出,尽管我已将 java 文件名而不是类名传递给它。请参阅下面的屏幕截图。
有人可以澄清一下吗?
Java - openjdk version "11.0.8" 2020-07-14 LTS(AWS Corretto)
操作系统 - Amazon Linux 2(red hat based OS)
基础设施 - AWS EC2 instance
编辑:我还注意到只有当目录中没有相应的类文件时才会发生这种情况。如果有对应的类文件,则报错:error: class found on application class path: HelloWorld
【问题讨论】:
标签: java java-11 javacompiler