为什么在JVM上执行时会删除.class?

时间:2013-11-25 20:53:01

标签: java jvm jvm-arguments

示例:我有一些源代码,FooBar.java

javac FooBar.java

给了我FooBar.class

为什么JVM命令行API采用FooBar而不是FooBar.class(在UNIX FYI上工作)?

2 个答案:

答案 0 :(得分:5)

那只是一个惯例!使用完全限定的类名加载类。 ClassLoader然后知道如何将类名映射到文件名(例如通过附加'.class')。

答案 1 :(得分:4)

仅仅因为您必须告诉JVM您要运行的类的名称,而不是它的实际文件名。 另一个例子,如果您的类是myPackage / FooBar.java,您将编译为myPackage / FooBar.class,尽管您将myPackage.FooBar作为jvm参数。