当java程序通过命令提示符运行时执行哪个文件?

时间:2012-08-22 09:53:17

标签: java command-prompt

我对这个问题很好奇。

当我们使用javac编译.java文件时。 javac JavaFileName.java,创建了一个JavaFileName.class文件。但是当我们在命令提示符下使用java命令运行这个java程序时,我们编写java JavaFileName

我的问题是当我们通过命令提示符运行java程序时,哪个文件传递给java命令?

如果它使用.class file,那么为什么它会在java JavaFileName.class

上出错

4 个答案:

答案 0 :(得分:4)

这不是你提名的文件。相反,您要提名,Java将使用classpath中的条目来查找它。

您的classpath将包含目录或.jar / .zips,Java将按顺序搜索这些目录。

显然,对于目录,指定的类和文件之间存在映射。这也适用于.jar / .zip。 Java将查找相应的条目。

e.g。

   java a.b.c.D

将导致搜索文件或.jar条目a/b/c/D.class

答案 1 :(得分:1)

这是.class被执行,你只是不写字面。

答案 2 :(得分:0)

它不是在命令行参数中传递给java的文件引用。它是完全限定的类名(即org.exemple.MyClass)。 Java将查看类路径中匹配的.class文件,并调用main()方法(如果存在)。

答案 3 :(得分:0)

执行 .class 文件 当你写

java MyClass

它会在执行命令的文件夹中搜索文件 MyClass.class ,所以在你写的时候:

java my.package.MyClass

它将在子文件夹 ./ my / package / MyClass.class 中搜索文件,最后在你写的时候:

java MyClass.class

它将搜索文件 ./ MyClass / class.class

这就是你得到错误的原因。