我很好奇这个问题。
当我们使用 javac 编译 .java 文件时,即。 javac JavaFileName.java
,一个 JavaFileName.class
文件被创建。但是,当我们在命令提示符下使用 java 命令运行此 java 程序时,我们会编写 java JavaFileName
。
我的问题是,当我们通过命令提示符运行java程序时,哪个文件被传递给java
命令?
如果它使用.class文件
那么为什么它在java JavaFileName.class
上给出错误
最佳答案
这不是您指定的文件。相反,您指定一个类,Java 将使用类路径
中的条目来查找它。
您的类路径
将包含目录或.jar/.zip,Java将按顺序搜索它们。
显然对于目录来说,指定的类和文件之间存在映射。这也适用于 .jar/.zip。 Java将寻找相应的条目。
例如
java a.b.c.D
将导致搜索文件或 .jar 条目a/b/c/D.class
关于java - 当java程序通过命令提示符运行时,哪个文件被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070556/